6.7 Burp 滲透器
Burp Infiltrator是用于檢測目標Web應用程序的工具,以便于使用Burp Scanner進行測試。Burp Infiltrator修改目標應用程序,以便Burp可以檢測到其輸入被傳遞到服務器端可能不安全的API的情況。
Burp Infiltrator當前支持以下列語言編寫的應用程序:
- Java,Groovy,Scala或其他JVM語言(JRE版本1.4-1.8)
- C#,VB或其他.NET語言(.NET 2.0版及更高版本)
重要通知
- Burp Infiltrator不應在需要可用性,性能或正確操作的生產系統或任何其他系統上使用。Burp Infiltrator對應用程序進行更改,這可能導致服務中斷,性能下降,應用程序錯誤或其他問題。
- Burp Infiltrator對應用程序字節碼進行不可逆的更改。要還原Burp Infiltrator所做的更改,有必要從原始未修改來源重新部署該應用程序。
- Burp Infiltrator會更改應用程序的行為,以便可能向可能通過網絡與應用程序進行交互的任何人公開潛在的敏感信息。
- 出于這些原因,僅在以下情況下使用Burp Infiltrator:(a)僅用于測試目的,(b)無法向任何不相信可能會被公布信息的人提供。
Burp滲透器的工作原理
Burp滲透器的工作方式如下:
- Burp用戶通過“ Burp”菜單從Burp Suite Professional導出相關的Burp Infiltrator安裝程序。
- 應用程序開發人員或管理員通過在包含應用程序字節碼的計算機上運行Burp Infiltrator工具來安裝它。
- Burp Infiltrator修補應用程序字節碼,以便在調用可能不安全的API的位置注入檢測鉤子。
- 該應用程序以正常方式運行,運行修補后的字節碼。
- Burp用戶以常規方式執行應用程序掃描。
- 當應用程序調用可能不安全的API時,instrumentation hook會檢查API的相關參數。包含Burp Collaborator域的所有Burp有效負載都將根據其唯一結構進行指紋識別。
- instrumentation hook 對檢測到的Burp Collaborator域進行了變異,以合并被調用的API的標識符。
- instrumentation hook 對突變的Burp Collaborator域執行DNS查找。
- 基于配置選項,instrumentation hook向突變的Burp Collaborator域發出HTTP / S請求,包括相關參數的完整值和應用程序調用堆棧。
- Burp以正常方式輪詢Collaborator服務器,以檢索由于其掃描有效負載而發生的任何Collaborator交互的詳細信息。Burp Infiltrator儀器執行的所有交互的詳細信息都返回給Burp。
- Burp向用戶報告應用程序正在將相關的輸入項傳遞給可能不安全的API,并生成有關漏洞類型的信息掃描問題。如果針對同一問題找到了其他證據(基于帶內行為或其他協作者的互動),則該證據將匯總為一個問題。
由于Burp Infiltrator的工作方式是觀察包含Burp Collaborator域的Burp負載,并通過指定的Burp Collaborator服務器與Burp通信,因此使用Burp Infiltrator要求:
- Burp執行掃描的實例被配置為使用有效且正常運行的Burp Collaborator服務器,并且目標應用程序和Burp都能夠與該服務器進行交互。
- 至少啟用了一些使用基于協作者的有效負載的掃描檢查。理想情況下,這應包括外部服務交互的掃描檢查。盡可能多地使用基于協作者的掃描檢查將最大程度地提高有效性。
Burp Infiltrator支持使用專用Burp Collaborator服務器,并且Infiltrator儀表會根據Burp在其有效負載中發送的完整域名知道與哪個Collaborator服務器進行通信。但是,僅支持使用域名配置的專用Collaborator服務器。不支持通過IP地址配置的專用Collaborator服務器。
安裝Burp滲透器
要使用Burp Infiltrator,需要使用以下步驟將其安裝在目標應用程序中:
- 從Burp Suite Professional導出Burp Infiltrator安裝程序。轉到“Burp”菜單,選擇“Burp滲透器”,選擇要檢測的應用程序類型,然后將文件保存到首選位置。
- 將Burp Infiltrator安裝程序復制到包含已編譯應用程序字節碼的計算機上。它可能已經位于目標應用程序服務器上,或已經準備好部署的另一臺計算機上。
- 如果字節碼已位于目標應用程序服務器上,請確保該應用程序當前未在運行,因為這可能會阻止修改磁盤上的字節碼。
- 修補期間,Burp Infiltrator需要知道應用程序字節碼的位置。實現此目的的最簡單方法是將Infiltrator安裝程序放置在應用程序的根文件夾中,然后從該文件夾中將其作為工作目錄運行。或者,您可以在安裝過程中指定應用程序字節碼的路徑。
- 確保用于執行Burp Infiltrator安裝的用戶上下文具有寫入包含應用程序字節碼的文件和文件夾的權限。
- Burp Infiltrator需要從命令行運行(例如,對于Java應用程序,使用java -jar burp_infiltrator_java.jar)。
- 默認情況下,Burp Infiltrator安裝程序以交互方式運行,并在安裝過程中詢問一系列問題。另外,您也可以非交互式地運行它。
- 修補過程完成后,使用修改后的字節碼以正常方式啟動應用程序。
請注意與修補過程有關的以下注意事項:
- 如果作為應用程序一部分執行的代碼位于多個文件位置,甚至位于多臺計算機上,則要實現完全覆蓋,應針對保存字節碼的每個位置運行Burp Infiltrator。
- 不要在包含字節碼的文件位置上運行Burp Infiltrator,該字節碼不屬于要測試的應用程序的一部分。
- 對應用程序字節碼所做的更改可能會破壞任何已簽名代碼組件上的簽名。為了成功地將Burp Infiltrator與已簽名的代碼組件一起使用,有必要在應用程序中禁用對代碼簽名的驗證。
- Burp Infiltrator對應用程序字節碼進行不可逆的更改。要還原Burp Infiltrator所做的更改,有必要從原始未修改來源重新部署該應用程序。
- 如果已經使用Burp Infiltrator修補了目標應用程序,并且有新版本的Burp Infiltrator可用,則可以簡單地以常規方式運行更新的Infiltrator安裝程序,然后重新啟動該應用程序。
- 為了修補.NET應用程序,Burp Infiltrator使用字節碼匯編和反匯編工具。這些可以是:(a)與.NET框架和Windows SDK工具分別分發的
ilasm和ildasm工具;(b)與mono一起分發的ilasm和monodis工具。您必須在修補過程中指定組裝和拆卸工具的位置。請注意,匯編工具的版本必須與字節碼針對的.NET框架版本相匹配,以確保兼容性。 - .NET代碼不應使用
SupressIldasmAttribute屬性進行注釋,因為這將阻止Burp Infiltrator檢測裝配。 - 修補.NET應用程序后,不應將Burp Infiltrator安裝程序可執行文件留在應用程序從其加載其字節碼(通常為“ bin”)的文件夾中。如果安裝程序留在此位置,則默認情況下,.NET將把安裝程序作為應用程序的一部分加載,這可能會導致記錄警告甚至致命錯誤。
非交互式安裝
您可以非交互方式安裝Burp Infiltrator。這支持各種用例。例如,CI管道可以自動將應用程序構建部署到登臺服務器,安裝Burp Infiltrator工具,并使用Burp Scanner執行掃描。
要非交互地運行Burp Infiltrator,請在命令行中添加以下參數:
--non-interactive
在非交互模式下,Burp Infiltrator安裝程序將對通常在交互模式下提示輸入的所有配置選項使用默認值。如果需要,可以使用其他命令行參數來覆蓋這些默認值。使用以下命令行參數列出所有受支持的選項:
--help
在非交互地安裝Burp Infiltrator之前,您應該使用上面的命令查看除非被覆蓋的配置選項的默認值的詳細信息,并確保根據您的要求使用正確的選項。
注意:通過以非交互方式運行Burp Infiltrator安裝程序,您將被視為已閱讀并同意在交互安裝過程中顯示的所有警告和免責聲明。
配置選項
可以在Burp Infiltrator 的安裝過程中以交互方式或在非交互式安裝過程中使用命令行選項來指定以下配置選項:
是否報告已達到潛在不安全API的相關參數的完整值。
當輸入到達可能不安全的API時是否報告應用程序調用堆棧。
是否允許通過未加密的HTTP與Collaborator服務器進行通信。使用HTTPS可以降低未經授權披露傳輸信息的風險。但是,根據所檢測應用程序中可用的技術以及配置的Collaborator服務器的功能,有時可能需要使用未加密的通信。
注意:使用HTTPS時,Burp Infiltrator會盡最大努力使用可用的最新TLS密碼。在某些目標系統上,尤其是使用較舊技術的目標系統,最新的可用密碼可能會受到適當位置的對手的已知攻擊的攻擊。
是否只允許與指定的Burp Collaborator服務器通信。在Burp Scanner掃描期間,有效負載將包含Burp配置為使用的Burp Collaborator服務器的子域。如果您知道將使用特定的Collaborator服務器執行Burp掃描,則可以將Burp Infiltrator配置為僅允許與該服務器的通信。
應在其中應用滲透程序修補程序的文件路徑。修補程序始終以遞歸方式應用于子目錄。
注意:配置選項是在修補操作期間指定的,并在修補操作對應用程序字節碼進行的更改中應用。要在執行補丁程序后修改Burp Infiltrator的配置,必須使用更新的選項重新運行Burp Infiltrator安裝程序,然后重新啟動應用程序。
Burp Suite中文使用教程(桌面版)
推薦文章: