如何使用SQLMAP繞過WAF


WAF(web應用防火牆)逐漸成為安全解決方案的標配之一。正因為有了它,許多公司甚至已經不在意web應用的漏洞。遺憾的是,並不是所有的waf都是不可繞過的!本文將向大家講述,如何使用注入神器SQLMap繞過WAFs/IDSs。

svn下載最新版本的sqlmap
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev

我們關注的重點在於使用tamper腳本修改請求從而逃避WAF的規則檢測。許多時候,你需要聯合使用多個tamper腳本。
所有tamper腳本請參考:https://svn.sqlmap.org/sqlmap/trunk/sqlmap/tamper/

在這里,我們以針對Mysql的space2hash.pyspace2morehash.py為例。這兩個腳本將會自動轉換所有空格為隨機注釋,而此腳本的拓展版本(space2morehash.py)也會幫助到你來“打亂”方法函數以繞過WAF的檢測。

Example: * Input: 1 AND 9227=9227
* Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227

好了,接下來我們講重點了。

你可以使用命令–tamper 來調用腳本,如下:

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

使用SQLMap繞過WAF

由上圖我們可以看到,請求中的空格被替換為URL編碼后的%23randomText%0A
CHAR()USER(),CONCAT() 這種函數被替換為FUNCTION%23randomText%0A()

還有兩個空格替換腳本:space2mssqlblank.py and space2mysqlblank.py,如下圖

使用SQLMap繞過WAF

charencode.py andchardoubleencode.py是兩個用來打亂編碼的tamper腳本,他們在繞過不同的關鍵詞過濾時很有作用。

使用SQLMap繞過WAF

如果web應用使用asp/asp.net開發,charunicodeencode.pypercentage.py可以幫助你逃避Waf的檢測。

使用SQLMap繞過WAF

有意思的是,asp允許在字符之間使用多個%號間隔,比如 AND 1=%%%%%%%%1 是合法的!

使用SQLMap繞過WAF

總結:

以上列舉了一部分有代表性的tamper腳本來幫助我們繞過waf,每個腳本都有自己的使用場景,還是需要靈活使用。

參考文章:《利用SQLMap進行cookie注入》《通過HTTP參數污染繞過WAF攔截


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM