15.2 如何使用 Burp Intruder
Burp Intruder是用于自動針對Web應用程序進行自定義攻擊的工具。它非常強大且可配置,可用于執行各種任務,從簡單的Web目錄暴力破解到主動利用復雜的SQL盲目注入漏洞。
Intruder如何運作
Burp Intruder的工作方式是獲取HTTP請求(稱為“基本請求”),以各種系統方式修改請求,發布請求的每個修改版本以及分析應用程序的響應以識別有趣的功能。
每次攻擊,你必須指定的一組或多組有效載荷和位置在基本請求,其中有效載荷將被放置。可以使用多種生成有效載荷的方法(包括字符串,數字,日期,蠻力,位翻轉等簡單列表)。可以使用不同的算法將有效載荷放置在有效載荷位置。可以使用各種工具來幫助分析結果并確定有趣的項目以進行進一步調查。
典型用途
Burp Intruder是一種非常靈活的工具,可以在測試Web應用程序時幫助自動執行各種任務。Intruder最常見的用例分為以下幾類:
- 枚舉標識符
- 收集有用的數據
- 模糊檢測漏洞
枚舉標識符
Web應用程序經常使用標識符來引用數據和資源項。例如,用戶名,文檔ID和帳號。通常,您將需要循環瀏覽大量潛在的標識符,以枚舉哪些有效或值得進一步研究。要在Burp Intruder中執行此操作,您需要執行以下步驟:
- 查找一個在參數中包含標識符的應用程序請求,其中的響應指示標識符是否有效。
- 在參數的值處配置單個有效負載位置。
- 使用正確的格式或方案,使用適當的有效負載類型來生成潛在的標識符以進行測試。
- 確定響應的功能,從中可以可靠地推斷出有效的標識符,并相應地配置Burp。例如,如果有效標識符返回不同的HTTP狀態代碼或響應長度,則可以對該屬性排序攻擊結果。或者,如果有效的標識符返回包含特定表達式的響應,則可以定義match grep項以選擇與該表達式匹配的響應。
此類實際攻擊的一些示例如下:
- 如果應用程序的登錄失敗消息允許您枚舉有效的用戶名,請使用用戶名生成器有效負載類型在可能的用戶名列表中循環查找并標識有效的用戶名。
- 確定了有效用戶名列表后,您可以將簡單列表有效負載類型與一組常用密碼一起使用,以嘗試猜測用戶的密碼。
- 如果應用程序功能允許您通過提交有效的訂單ID來查看任何訂單的詳細信息,則可以使用自定義迭代器有效負載類型以正確的格式生成潛在的訂單ID,并拖網其他用戶的訂單。
- 如果應用程序使用通過CBC密碼加密的有意義的結構化會話令牌,則可以使用位翻轉器有效負載類型來系統地修改有效令牌,以嘗試有意義地篡改其解密值。
收集有用的數據
在許多情況下,您不僅需要簡單地識別有效的標識符,還需要提取有關每個項目的一些有趣數據,以幫助您將精力集中在最關鍵的項目上,或者將其用于其他攻擊。要在Burp Intruder中執行此操作,您需要執行以下步驟:
- 查找一個在參數中包含標識符的應用程序請求,并且響應中包含有關所請求項目的有趣數據。
- 在參數的值處 配置單個有效負載位置。
- 使用正確的格式或方案,使用適當的有效負載類型來生成潛在的標識符以進行測試。
- 配置提取grep項以從每個響應中檢索相關數據,并將其列在攻擊結果中。
此類實際攻擊的一些示例如下:
- 如果應用程序具有“忘記密碼”功能,該功能將用戶名作為參數并顯示該用戶設置的密碼提示,則可以循環瀏覽簡單的常用用戶名列表,并提取每個有效用戶的密碼提示。然后,您可以快速掃描檢索到的提示列表,以查找容易猜到的提示。
- 如果應用程序通過包含數字頁面ID參數的單個URL動態返回某些內容,則可以使用數字有效載荷類型循環所有可能的標識符,并檢索每個頁面的HTML標題標簽。然后,您可以快速查看可用頁面的列表,以識別特別有趣或不允許訪問的頁面。
- 如果應用程序具有“用戶配置文件”頁面,其中包含有關每個用戶的信息,包括他們在應用程序中的角色,則可以循環瀏覽已提取的用戶名列表,并檢索每個用戶的角色,從而可以快速識別管理帳戶以進一步有針對性的攻擊。
模糊檢測漏洞
通過在請求參數中提交各種測試字符串,并分析應用程序對錯誤消息和其他異常的響應,可以檢測到 許多基于輸入的漏洞,例如SQL注入,跨站點腳本和文件路徑遍歷。考慮到當今應用程序的大小和復雜性,手動執行此測試是一個耗時且繁瑣的過程。
您可以按照以下步驟使用Burp Intruder自動執行Web應用程序模糊測試:
- 在所有請求參數的值處配置有效負載位置。
- 使用簡單列表有效負載類型。
- 使用Burp的預定義有效負載列表之一配置有效負載列表,該列表包含常見的模糊字符串或您自己的攻擊字符串列表。
- 使用各種常見錯誤消息字符串配置匹配grep項。match grep用戶界面中的默認選項包括用于此目的的有用字符串列表。
- 之后發動進攻,查看攻擊結果,以確定有趣的錯誤和其他異常現象。您應該在每個匹配grep列以及其他相關列(例如響應長度,HTTP狀態代碼,響應計時器等)上對結果表進行排序。
注意:在進行模糊測試時,您通常希望使用相同的Intruder有效負載并匹配grep配置來測試大量請求。為方便起見,您可以使用“Intruder”菜單將“新標簽頁行為”選項配置為“從最后一個標簽頁復制配置”。然后,在為一個請求配置了有效負載和grep字符串后,發送到Intruder的后續請求將在其選項卡中使用相同的配置選項。要模糊多個請求,只需將每個請求發送給Intruder,然后從Intruder菜單中選擇“開始攻擊”。
配置攻擊
Intruder主界面可讓您同時配置多個攻擊,每個攻擊都在其自己的標簽中。當您向Intruder發送請求時,每個請求都會在其自己的編號標簽中打開。每個攻擊配置選項卡都包含幾個用于配置攻擊的子選項卡。使用以下鏈接可獲取有關每個標簽的詳細信息的幫助:
- 目標 -用于配置攻擊目標服務器的詳細信息。
- 位置 -用于配置攻擊的請求模板,有效負載位置和攻擊類型(確定有效負載分配給有效負載位置的方式)。
- 有效負載-用于配置一組或多組有效負載,這些有效負載將在攻擊過程中放入有效負載位置。
- 選項 -用于配置許多其他影響攻擊的選項。
創建新的Intruder攻擊的最簡單方法是在另一個Burp工具中選擇相關的基本請求(例如Proxy History或Target site map),然后使用上下文菜單上的“發送到Intruder”選項。這將創建一個新的攻擊選項卡,并使用基本請求的相關詳細信息自動填充“ 目標”和“ 位置”選項卡。然后,您可以根據需要修改自動負載的位置,并配置合適的負載和其他攻擊選項。
Burp Intruder具有許多功能,可幫助您管理攻擊配置。這些功能可通過“Intruder”菜單使用:
- 您可以為當前選項卡保存攻擊配置,并在以后重新加載。加載或保存時,您可以選擇包括或排除有效載荷位置設置。包括有效載荷位置設置,可以保存特定攻擊的完整配置。排除有效負載位置設置后,您可以保存可用于其他基本請求模板和有效負載位置的通用攻擊配置-例如,用于模糊特定類型請求的首選配置。
- 您可以在兩個現有選項卡之間復制攻擊配置,也可以復制到新選項卡中。同樣,您可以選擇包括或排除有效載荷位置設置。
- 打開新的攻擊選項卡時,可以控制Intruder如何處理攻擊配置(通過單擊最右邊的“ …”選項卡,或向Intruder發送新請求)。您可以選擇使用默認攻擊配置,從第一個打開的選項卡復制配置,或從最后一個打開的選項卡復制配置。使用后面的選項,您可以創建通用的攻擊配置(例如,用于模糊測試),并將其自動應用于您發送給Intruder的每個新請求。
攻擊標簽本身易于管理。您可以:
- 通過雙擊選項卡標題重命名選項卡。
- 通過拖動來重新排列標簽。
- 通過單擊最右邊的“ …”選項卡來打開新的選項卡。
- 通過單擊選項卡標題中的X按鈕關閉選項卡。
發動攻擊
完全配置攻擊后,可以從“Intruder”菜單中選擇“開始攻擊”來發起攻擊。
每種攻擊都會在新窗口中運行,其中包含詳細的結果以及完整的請求和響應(如果已配置)。有多種功能可幫助您分析結果并確定有趣的項目以進行進一步調查。您可以:
- 對結果列進行排序,以根據不同的屬性(HTTP狀態代碼,響應長度等)對項目進行排序。
- 取消隱藏默認情況下隱藏的其他結果列。
- 定義新的匹配grep并在攻擊已進行時提取grep項,以根據觀察到的結果進行進一步分析。
- 設置顯示過濾器并注釋結果。
- 保存結果表的內容。
- 使用上下文菜單執行其他操作并與您的測試工作流程集成。
- 專業的保存整個攻擊。若要以后重新加載已保存的攻擊,請在“Intruder”菜單上選擇“打開已保存的攻擊”。
Burp Suite中文使用教程(桌面版)
推薦文章: