12.SQL漏洞-注入类型&请求方法注入

文章目录

  • 【参数类型】
    • 判断注入类型
      • 1、数字类型
      • 2、字符类型
      • 3、搜索类型
      • 4、JSON类型
    • 注释语句
  • 【请求方法】
  • 【演示实验】
  • json 注入
    • sql语句是json 格式

【参数类型】

判断注入类型

1、数字类型

select * from user where id=1

2、字符类型

select * from user where name=‘admin’
过滤’(单引号)和"(双引号)

3、搜索类型

select * from user where name like ‘%admin%’ 只要有admin都会被搜索出来
过滤%(百分号)和’(单引号)
12.SQL漏洞-注入类型&请求方法注入_第1张图片

4、JSON类型

★post提交方式中的一种数据交互格式
JSON格式:
json={“name”:“admin”
“age”:“18”}

$id=1 and 1=2
$sql=“SELECT * FROM users WHERE id=‘1’ and 1=2–+ LIMIT 0,1”;

注释语句

–+、# 注释掉一行
使用POST方式注入大部分用到# 用url注入大部分用到–+

#闭合
必须要将语句闭合,使注入语句生效

#SQL语句干扰符号
'(单引号),"(双引号),%(百分号),)(小括号),}(大括号) 等,具体需看写法

【请求方法】

GET、POST、COOKIE、REQUEST、HTTP头部等

GET请求传输的数据量限制在2KB左右
GET只要在url上,就能接收到请求
REQUEST请求不管是GET和POST都可以
HTTP报文头部各个参数都能注入,比如User-Agent、Cookie

tips: 切换请求方式可能达到绕过防护的效果

【演示实验】

 参数字符型注入测试 sqlilabs Less-1,2,3,4
参考:
https://blog.csdn.net/wang_624/article/details/101913584
 POST数据提交注入测试 sqliabs Less-11

post 发送 不用编码
12.SQL漏洞-注入类型&请求方法注入_第2张图片

 COOKIE数据提交注入测试 sqlilabs Less-20
12.SQL漏洞-注入类型&请求方法注入_第3张图片
报错注入;

' and updatexml(1,concat(0x7e,(select @@version),0x7e),1) #

12.SQL漏洞-注入类型&请求方法注入_第4张图片
联合查询:
12.SQL漏洞-注入类型&请求方法注入_第5张图片
看样子好像没有

 HTTP头部参数数据注入测试 sqlilabs Less-18

12.SQL漏洞-注入类型&请求方法注入_第6张图片

ad'or updatexml(1,concat(0x7e,(database())),1) or '1'='1

12.SQL漏洞-注入类型&请求方法注入_第7张图片

 参数JSON数据注入测试 https://tianchi.aliyun.com/competition/entrance/531796/information
12.SQL漏洞-注入类型&请求方法注入_第8张图片

json 注入

sql语句是json 格式

单引号只是说明它是字符串; { } 花括号是说明json 格式不影响 sql 语句判断

$sql="select * from users where username='{&username}' ";
            json={"username":"admin' and 1=2 union select 1,2,3#"}        ' (单引号)闭合的是SQL语句中的 '   

‘#’不会注释双引号
看双引号里面的内容,判断注入语句 就行了
admin’ and 1=2 union select 1,2,3#

你可能感兴趣的:(web,SQL)