有时候我们注入的时候很难用and 1=1和 and 1=2来判断是否存在注入。。特别是像宽字节注入这种。。就比如说搜索型注入吧。。当存在宽字节注入时我们加上了%d5这样的。。数据库是查不到的。

这是我们就可以用延迟注入来判断 (当然or语句应该也是可以的,只是一点思路)

比如:

word=%d5%27 and 1=1%23

word=%d5%27 and 1=2%23

是判断不出是否存在注入的,因为都没查询到,这时我们可以构造:

word=%d5%27 and id=benchmark(1800000,md5(144111))%23

因为id这个字段一般都是存在的,将144111算md5值算1800000次,必然需要一定的时间,于是就产生了延迟,如果浏览器假死的话就存在注入漏洞。

以上只是一点思路。。大牛不要拍砖。

关于宽字节注入的知识,可以看这里:

PHP 双字节、宽字节编码漏洞

利用GBK双字节编码突破PHP单引号转义限制进行SQL注入