SQL注射的绕过技巧较多,此文仅做一些简单的总结。
前文已经提到,最好利用的注射点:
支持Union
可报错
支持多行执行、可执行系统命令、可HTTP Request等额外有利条件
若非以上类型,则可能需要暴力猜解。猜解时,可能会遇到一些限制。攻击者要做的,就是将其个个击破。
1. 通过greatest函数绕过不能使用大小于符号的情况
猜解单个字符时,通常使用折半查找。
mysql> select ascii(mid(user(),1,1)) < 150;
+------------------------------+
| ascii(mid(user(),1,1)) < 150 |
+------------------------------+
| 1 |
+------------------------------+
1
2
3
4
5
6
mysql>selectascii(mid(user(),1,1))<150;
+------------------------------+
|ascii(mid(user(),1,1))<150|
+------------------------------+
|1|
+------------------------------+
以上是判断user()第一个字符的ascii码是否小于150. 若小于150,返回true(1),