標籤:

Bypass WAF:使用Burp插件繞過一些WAF設備

我曾經寫了一篇關於Burp插件使用的技術的博文在這裡。許多WAF設備可以被偽造的請求欺騙,這些偽造的會被認為是自身正常的請求來處理,因為如果被判斷有特定的頭部存在,那麼對於它來說就是可信的。bypass方法的基礎知識可以在HP博客文章中找到。

我一直在Burp中執行匹配/替換規則,以將這些頭部自動添加到發送到受WAF保護的站點的請求。但是,這取決於能否創建一個可用的頭並將其添加到活動掃描,中繼器請求,入侵者請求的插件等等。我發現Fishnet Security的這篇文章真的讓人思如泉湧。

首先,我在Python中實現了這個插件,因為這是一個簡單易用的工具,我最近在一個項目中有用過這個插件。然後我做了一些關於如何把它作為Java擴展來提高效率的快速研究。

要使用此插件添加必要的頭部,首先需要下載該插件的Python版本,插件的Java版本或Java源碼,然後自己編譯。插件文件下載成功後,啟動Burp並導航到「Extender->擴展」,然後點擊「添加」按鈕。然後根據語言選擇對應的版本,使用的Java版本就用Java的,使用,然後導航到擴展路徑。配置應該如下所示:

該插件現在應該被載入並顯示如下:

現在您需要導航到「選項 – >會話」,然後單擊「會話處理規則」配置部分的「添加」按鈕,如下所示:

給規則一個名稱,然後點擊「規則操作」部分中的「添加」按鈕,然後選擇「調用Burp擴展名」,如下所示:

您應該可以在下拉框中選擇「bypassWAF」,如下所示:

單擊「確定」,然後選擇「範圍」選項卡。啟用您想要執行拓展範圍插件的所有工具,然後設置範圍。我喜歡為所有工具應用範圍,並將範圍限制在已添加到套件範圍內的請求上,如下所示:

bypassWAF包含以下功能:

大多數的新功能是基於伊萬·里斯蒂克的發現WAFbypass工作在這裡這裡。每個功能的描述如下:

1.用戶可以修改每個請求中發送的X-Origination-IP,X-Forwarded-For,X-Remote-IP,X-Remote-Addr頭文件。這可能是我工具的最佳bypass技術。將WAF配置為信任自身(127.0.0.1)或上游代理設備(這是bypass目標)是不尋常的。

2.「Content-Type」頭可以在每個請求中保持不變,從所有請求中刪除,或修改為每個請求的許多其他選項之一。一些WAF只會根據已知的內容類型對請求進行解碼/評估,這個功能針對的是弱點。

3.「主機」頭也可以修改。配置不當的WAF可能被配置為僅基於此標題中找到的主機的正確FQDN來評估請求,這是該bypass目標。

4.請求類型選項允許Burp用戶僅使用「GET」或「POST」的給定請求方法上的剩餘bypass技術,或將其應用於所有請求

5.路徑注入功能可以不修改請求,注入隨機路徑信息信息(/path/to/example.php/randomvalue?restofquery),或者注入隨機路徑參數(/path/to/example.php;randomparam=randomvalue? resetofquery)。這可以用來繞過依賴於路徑信息的不好寫的規則

6.路徑模糊功能將路徑中的最後一個斜杠修改為隨機值,或者默認情況下不執行任何操作。最後一個斜杠可以修改為許多值中的一個,在許多情況下,這會導致仍然有效的請求,但可能會繞過編寫的依賴路徑信息的WAF規則

7.參數混淆特徵是語言特定的。PHP將在每個參數的開始處丟棄一個+,但編寫的WAF規則寫入較差的特定參數名稱,從而忽略起始於+的參數。類似地,ASP在每個參數的開始處丟棄一個%

8.「設置配置」按鈕可激活您選擇的所有設置。

所有這些功能可以組合起來提供多個bypass選項。我打算至少添加以下功能到以後的版本:

1.HTTP參數污染 - 自動對GET / POST參數執行HPP攻擊。

2.HTTP請求走私 - 自動對每個請求執行HTTP請求走私攻擊,其中將一個虛擬請求添加到開頭,最後添加真實(走私)請求。

你可以在這裡找到擴展。

本文為翻譯文章,如若轉載,請註明原文地址: 4hou.com/tools/8065.htm

推薦閱讀:

濫用系統Token實現Windows本地提權
如何用一種最簡單的方式分析惡意軟體
3個步驟實現簡單語言解釋器(自製簡易編程語言)
HBO電視網被黑:《權力遊戲 7》視頻泄露
黑客俱樂部:英國正栽培網路安全的「明日之子」

TAG:信息安全 |