【安全】【測試思路】基於Burpsuite工具中的intruder執行暴力破解
基於Burpsuite工具中的intruder執行暴力破解
測試工具
序號 | 工具 | 版本 | 備註 |
---|---|---|---|
1 | JDK環境 | 1.7及以上 | burpsuite工具執行所需 |
2 | Burpsuite | 1.4及以上 | 請根據個人情況,選擇Community或Professional版本 |
3 | DVWA | 當前最新是1.9 | 整合多種滲透測試工具,可根據測試場景,調整應用程式的安全等級,環境部署參考點選此處 |
常規暴力破解
對於一般或中小型專案軟體來說,使用者進行登入操作時,傳送的鑑權請求可能只有一條,以使用者賬號、密碼、驗證碼(若有)作為入參,傳送給伺服器進行驗證,根據鑑權結果返回登入失敗或成功。此類登入請求,只需在intruder中選取請求中的密碼引數作為載荷標記,配置好對應的載荷內容,即可執行破解操作。
測試流程
-
攔截登入請求,併傳送到intruder中。
-
選擇攻擊型別。
Attack type (型別) | Payload set (載荷集) | 描述 | 適用場景 |
---|---|---|---|
Sniper | 最多1個 | 單位置單遍歷,即所有載荷標記使用同一個載荷集,每次攻擊只替換一個載荷標記。攻擊總數=載荷標記數量 * 載荷集清單數量 | 只有一個位置需要替換,或者多個位置依次替換 |
Battering ram | 最多1個 | 多位置同時遍歷,即所有載荷標記使用同一個載荷集,且每次攻擊會同時替換所有載荷標記。 攻擊總數=載荷集清單數量 | 存在多個位置需要替換,且多個位置被替換內容需要同時一致 |
Pitchfork | 至少2個 | 各個載荷標記使用對應的載荷集,每次同時取載荷集中的第N個元素替換對應的標記。攻擊總數=所有載荷集清單最少數量 | 2個以上位置同時被替換,被替換的內容存在一一對應關係 |
Cluster bomb | 至少2個 | 集束爆破,攻擊總數等於所有載荷集清單數量的笛卡爾積。 | 2個以上位置同時被替換,被替換的內容無需存在對應關係,可自由組合。 |
-
選取載荷標記。
add:手動選取一個載荷標記位置,以成對的§符號標記起來。
clear:清除所有的載荷標記位置。
auto:工具自動選取需要被替換的標記位置。
refresh:重新整理編輯器中的內容,使之語法高亮。
-
新增載荷內容。
paste:從系統貼上板中獲取資料,點選paste按鈕新增。
load:選擇並讀取本地檔案,每一行作為一條資料。
remove:移除所選資料。
clear:清除所有資料。
add:單個資料新增。
add from list:從工具自帶的資料列表中新增。
-
執行破解,檢視破解請求。
點選Start attack按鈕,即可開始破解(為了提高破解機率,可先在options中將執行緒數設定為1)。
從圖中可發現,在執行第86次替換時,返回的長度length比其他的要少;再通過檢視該攻擊請求的返回報文,發現該請求已經正確返回了登入後的網頁原始碼;與此同時,在所有的攻擊請求中,沒有一條返回“賬號被鎖定”或“IP地址被鎖定”的錯誤資訊(具體返回內容,請根據專案實際情況判斷)。
故由此得出,該系統的登入模組,未做任何防暴力破解的措施,極易被破解出密碼。
特殊登入請求暴力破解
在接觸到的某些大型專案中,為了進一步提高專案的安全防護,可能會在登入驗證請求之前,先向伺服器傳送一條獲取隨機值的請求,伺服器返回隨機值後,登入驗證請求會攜帶此隨機值,連同登入使用者賬號、密碼、驗證碼(若有),一同傳送給伺服器進行鑑權驗證,並且此隨機值長度一般可達到32位或以上,同時可能存在時間限制,以此來達到雙重保障安全登入及長時間未登入銷燬登入會話的目的。
模擬登入流程如下:
如果此時我們們使用上述的常規暴力破解方式,未將登入隨機值放入登入請求中,伺服器一般會返回“登入會話失效”或者“登入隨機值已過期”等等訊息,而此類測試結果並不能作為專案存在防暴力破解機制的依據。
因此,我們們可以使用到burpsuite工具中自帶的巨集錄製的功能,將獲取隨機值的請求錄製成巨集,然後再將巨集命令應用到intruder功能中,便可讓登入請求入參攜帶由伺服器返回的隨機值,達到“欺騙”伺服器正常登入的目的。
測試流程
大體流程與常規破解一致,區別在於前期的配置巨集命令(步驟4~10)。
-
以DVWA程式中的Brute Force為例,輸入username和password,點選Login按鈕,觸發一次登入請求。
-
在burpsuite中可看出,登入請求中的引數,不僅包含了使用者名稱、密碼,還包含了一條user_token,並且是隨機的。
-
登入失敗後,在獲取新頁面的返回報文中,可看到新生成了一條user_token。
-
進入Project options->Sessions->Marcos中,點選Add新增一條Marco。
-
在Macro Editior介面中,點選Record macro按鈕,在彈出的視窗中,選擇那條獲取登入隨機值的請求,點選OK。
-
在Macro Editior介面中,輸入Macro description,在Macro items中選擇上述儲存的請求,點選Configure item按鈕進入Configure Macro Item介面。
-
點選Add按鈕,在彈出的Define Custom Paramter介面中,選擇那串user_token隨機值,工具將自動填寫隨機值的起止位置表示式,記錄下來備用。點選OK按鈕儲存,回到工具主介面。
-
在Project options的Session Handling Rules中,新增一條規則。在彈出的Session handling rule editor視窗中,取一個規則的名字,在Rule Actions中點選Add,選擇Run a macro。
-
在Session handling action editor中,自動填上了第1~4步配置的macro,選中即可,下面的選項保持預設。點選OK按鈕儲存。
-
返回到Session handling rule editor視窗,切換到Scope頁籤。確保規則應用的工具包含Intruder,URL Scope中選擇“Include all URLs”選項。點選OK按鈕以儲存。
-
至此,巨集命令的配置就完成了,接下來的intruder配置和執行破解操作,與常規暴力破解的步驟類似,不再贅述。
-
驗證:
a. 在發起的Intruder中,可看到每一次發起的破解請求中,其攜帶的user_token都是不同的,且有效(如果隨機值無效會返回HTTP302 Not Found)。
b. 返回報文中,可看到返回的訊息是賬號或密碼不正確,且smithy賬號由於嘗試登入錯誤次數過多,已被鎖定了。
相關文章
- 安全測試工具之-BurpsuiteUI
- Burpsuite安全測試測試指導UI
- Burpsuite 滲透測試工具使用UI
- 滲透測試工具Burpsuite操作教程UI
- Burpsuite intruder模組 越過token進行爆破,包含靶場搭建UI
- 安全測評基礎-安全測評常用測試工具講解
- 滲透測試之BurpSuite工具的使用介紹(三)UI
- 安全測試工具
- 暴力破解測試
- 基於Dubbo的http自動測試工具分享HTTP
- 基於 Django 的 Dubbo 介面測試工具平臺Django
- BurpSuite在非Web應用測試中的應用UIWeb
- 安全測試工具收集
- 基於NMAP日誌檔案的暴力破解工具BruteSpray
- java基礎 關於執行緒安全Java執行緒
- 基於Java的四大開源測試工具Java
- 基於GUI的自動化軟體測試工具GUI
- 執行 測試
- burpsuite暴力破解之四種方式UI
- webshell安全測試工具WeevelyWebshell
- 《安全測試常用的幾個工具》
- 開源多執行緒效能測試工具-sysbench執行緒
- 我編的併發執行緒壓力測試工具執行緒
- API 安全中的“左移”測試API
- 基於釣魚郵件測試的安全意識教育方法
- [滲透測試] Hydra暴力破解
- 【推薦】安全測試常用的工具合集!
- 【工具】基準測試工具之sysbench
- 基於Ruby的Burpsuite外掛開發UI
- 關於 iOS/OS X 執行緒安全的基礎知識iOS執行緒
- 關於iOS中的執行緒安全和使用場景iOS執行緒
- A/B 測試:概念 ≠ 執行
- java執行緒測試Java執行緒
- 基於Web的系統測試Web
- 並行執行的學習與測試並行
- Webmin 暴力破解+ 執行命令(轉)Web
- 基於 appium 的安卓 UI 及多裝置相容測試工具APP安卓UI
- burpsuite+xray 實現聯動測試UI