当前位置: 首页 > news >正文

Web攻防03_MySQL注入_数据请求

文章目录

  • PHP-MYSQL-数据请求类型
      • 1、数字型(无符号干扰)
      • 2、字符型(有符号干扰)
      • 3、搜索型(有多符号干扰)
      • 4、框架型(有各种符号干扰)
  • PHP-MYSQL-数据请求方法
      • 数据请求方法
      • GET:
      • POST:
      • Cookie:
      • SERVER
      • 功能点举例:
  • PHP-MYSQL-数据请求格式
      • 1、数据采用统一格式传输,后端进行格式解析带入数据库(json)
      • 2、数据采用加密编码传输,后端进行解密解码带入数据库(base64)

请添加图片描述

PHP-MYSQL-数据请求类型

SQL语句由于在黑盒中是无法预知写法的,SQL注入能发成功是需要拼接原SQL语句,大部分黑盒能做的就是分析后各种尝试去判断,所以有可能有注入但可能出现无法注入成功的情况。究其原因大部分都是原SQL语句的未知性导致的拼接失败!

由于开发者对于数据类型和SQL语句写法(框架写法)导致SQL注入拼接失败

1、数字型(无符号干扰)

select * from news where id=$id;

若用户输入字符,sql语句则会报错

2、字符型(有符号干扰)

select * from news where id=‘$id’;

若条件为int,也可设为字符型,带上单引号,这样即使用户输入为字符也不会报错,只是查不出来。

3、搜索型(有多符号干扰)

select * from news where id like ‘%$id%’

4、框架型(有各种符号干扰)

select * from news where id=(‘$id’);

select * from news where (id=‘$id’);

PHP-MYSQL-数据请求方法

在很多漏洞中都有应用到。

请求方法不同,就会有不同的注入点

如果代码审计时发现一个注入点,则需要找到它的请求方法,如Get、Post,进行相应的测试

通过不同的请求方法也有可能绕过一些WAF

数据请求方法

GET POST SERVER FILES HTTP头等

GET:

URL后的参数

POST:

一般看不到的传参,用户登录、文件上传等功能会用到,需要用burpsuite抓包调试较方便。

Cookie:

比较少

SERVER

可以获取User-Agent、Cookie、Rerferer、Host、X-FORWARDED-FOR(用于XFF注入)等

  • User-Agent:

使得服务器能够识别客户使用的操作系统,浏览器版本等.(很多数据量大的网站中会记录客户使用的操作系统或浏览器版本等存入数据库中)

  • Cookie:

网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据

  • X-Forwarded-For:

简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库or某文件[通过修改XXF头可以实现伪造IP]).

网站有接收&验证IP的功能,并且使用PHP的HTTP_X_FORWARDED_FOR就会有安全隐患,它可以通过修改数据包进行伪造。

该注入是由于数据库存储IP导致的,如果IP配置到代码中,就不会产生过注入了。

但是配置到代码中也会有绕过隐患。

  • Rerferer:

浏览器向 WEB 服务器表明自己是从哪个页面链接过来的(访问来源)

  • Host:

客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号

有些网站会记录访问者的IP信息,作为日志等功能,有该功能,就有可能有该漏洞

功能点举例:

1、用户登录时

一般多为POST请求

2、登录判断IP时

PHP特性中的**$_SERVER[‘HTTP_X_FORWARDED_FOR’];**接受IP的绕过(绕过)

实现:代码配置固定IP去判断-策略绕过

实现:数据库白名单IP去判断-select注入

实现:防注入记录IP去保存数据库-insert注入

3、文件上传将文件名写入数据库-insert注入

文件上传时,会将文件名写入数据库,此时将文件名作为注入的语句。

PHP-MYSQL-数据请求格式

1、数据采用统一格式传输,后端进行格式解析带入数据库(json)

2、数据采用加密编码传输,后端进行解密解码带入数据库(base64)

需要在注入时将注入语句编码,再进行注入。

工具也不知道它有编码/加密,需要手工测出来后告诉工具如何加密的,再由工具测

http://www.lryc.cn/news/198735.html

相关文章:

  • JS加密/解密那些必须知道的事儿
  • 搭建伪分布式Hadoop
  • 【C++】特殊类的设计(只在堆、栈创建对象,单例对象)
  • 分类预测 | MATLAB实现基于GRU-AdaBoost门控循环单元结合AdaBoost多输入分类预测
  • 【Spring Boot项目】根据用户的角色控制数据库访问权限
  • EthernetIP 转MODBUS RTU协议网关连接FANUC机器人作为EthernetIP通信从站
  • 如何注册微信小程序
  • 移动App安全检测的必要性,app安全测试报告的编写注意事项
  • DVWA-JavaScript Attacks
  • 算法通关村第二关|白银|链表反转拓展【持续更新】
  • 开发者职场“生存状态”大调研报告分析 - 第四版
  • 代码与细节(一)
  • AI绘画使用Stable Diffusion(SDXL)绘制中国古代神兽
  • 老卫带你学---leetcode刷题(148. 排序链表)
  • 21.1 stm32使用LTDC驱动LCD--配置说明
  • zabbix监控nginx的状态页面
  • C语言初学者工具选择:vscode + MSYS2 + cmake 搭建 C环境
  • 【四:httpclient的使用】
  • 在innodb引擎中,count(*)、count(1)、count(主键)、count(字段)哪个性能最高?
  • 华为OD 跳格子2(200分)【java】B卷
  • javascript/python 笔记: folium feature group自动切换
  • Python中的元组
  • 在云计算环境中,如何利用 AI 改进云计算系统和数据库系统性能
  • OpenP2P实现内网穿透远程办公
  • 黑白棋(Othello, ACM/ICPC World Finals 1992, UVa220)rust解法
  • MySQL中如何进行表的优化和压缩?
  • 【Java】Jsoup格式化html问题(文本空格折叠等)解决方法
  • Ansible定义各类变量,引用变量方式介绍及注册变量和vars_prompt的用法示例
  • 各类证件的版面信息收集
  • vueday01——ref响应式