如何使用SQLMap繞過WAF

2021-06-06 10:45:50 字數 1054 閱讀 2483

author:bugcx or anonymous

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

我們關注的重點在於使用tamper指令碼修改請求從而逃避waf的規則檢測。許多時候,你需要聯合使用多個tamper指令碼。

所有tamper指令碼請參考:

在這裡,我們以針對mysql的space2hash.py和space2morehash.py為例。這兩個指令碼將會自動轉換所有空格為隨機注釋,而此指令碼的拓展版本(space2morehash.py)也會幫助到你來「打亂」方法函式以繞過waf的檢測。

example: * input: 1 and 9227=9227

* output: 1%23pttmjopxdwj%0aand%23cwfcvrpv%0a9227=9227

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

你可以使用命令–tamper 來呼叫指令碼,如下:

./sqlmap.py -u -v 3 –dbms 「mysql」 –technique u -p id –batch –tamper 「space2morehash.py」

由上圖我們可以看到,請求中的空格被替換為url編碼後的%23randomtext%0a

而char(), user(),concat() 這種函式被替換為function%23randomtext%0a()

還有兩個空格替換指令碼:space2mssqlblank.py and space2mysqlblank.py,如下圖

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

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

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

文/roberto salgado 譯/[freebuf]thanks

WAF 繞過方法

通常,即使繞過了waf的防護,前提條件是後端伺服器是否存在對應的漏洞,後端在開發時一定要在 中加入引數的過濾與校驗,不能只指望waf在中間進行防護,減少威脅面,編寫安全的 才是正確的做法。在bash shell中,問號?表示萬用字元,可以替換任意的單個字元 非空 表示萬用字元,可以匹配任意長度 包括...

waf繞過注入

waf 是什麼?安全是乙個不斷對抗的過程,有防護手段,就有相應的繞過手段。滲透測試過程中,waf 是必定會遇到的,如何繞過 waf 就是乙個問題。waf繞過的手段千變萬化,分為3類 白盒繞過 黑盒繞過 fuzz繞過 白盒繞過 如果繞過 白盒下的繞過主要針對原始碼進行審計,分析函式功能,構造特定的包進...

黑客是如何繞過WAF的

1.什麼是waf 通過執行一系列針對http https的安全策略來防禦對web應用的攻擊。目前主要有單裝置waf與雲waf 2.waf的現狀 1.太多數waf能夠攔截較為普通的web攻擊 2.大多數waf沒有針對熱點漏洞奇葩攻擊exp防禦的能力 3.基本所有的waf都存在策略性繞過 4.由於waf...