運維安全第2節—暴力破解之基於表單的暴力破解實驗

  • 2019 年 10 月 8 日
  • 筆記

暴力破解攻擊&暴力破解漏洞概述

暴力破解關鍵詞:連續性嘗試 + 字典 + 自動化

如果一個網站沒有對登陸介面實施防暴力破解的措施,或者實施了不合理的措施,則稱該網站存在暴力破解漏洞。常見類型:

  • 是否要求用戶使用複雜密碼;
  • 是否每次驗證都使用安全驗證碼;
  • 是否對嘗試登陸行為做監控和限制;
  • 是否在必要的情況採用雙因素認證;
  • … …

暴力破解流程

  • 確認登陸介面的脆弱性:嘗試登陸—抓包—觀察驗證元素和response資訊,判斷是否存在暴力破解的可能
  • 對字典進行優化:根據實際情況對字典進行優化,提高爆破過程中的效率
  • 工具自動化操作:配置自動化工具(比如執行緒、超時時間、重試次數等),進行自動化操作

暴力破解測試流程—字典優化技巧

  • 搞清楚密碼的限制策略;
  • 根據提示資訊優化。

基於表單的暴力破解實驗

實驗環境:Burp suite & pikachu

實驗目標:pikachu-暴力破解-基於表單的暴力破解

測試工具:burpsuite free edition-intruder

burpsuite-intruder模組介紹

intruder模組可以通過對http request的數據包以便利的方式自定義參數,然後根據對應策略進行自動化的重放。常用於自動化猜測/暴力破解過程中。

  • target選項卡:設置攻擊目標,可以通過proxy發送;
  • positions選項卡:指定需要暴力破解的參數並設置成變數,同事選擇攻擊模式;
    • Sniper(狙擊手):設置一個payload,先講第一個變數使用字典進行測試,然後再將第二個變數使用字典進行測試;
    • Battering ram(衝撞車):設置一個payload,所有的變數一起用字典內容被替換,然後一起嘗試;
    • Ptichfork(草叉型):每個變數設置一個payload,分別使用對應的字典對變數進行同時替換;
    • Cluster bomb(焦束炸彈):需要為每個變數設置一個payload,分別使用字典內容組合對變數進行替換;

開始試驗

配置burpsuite

直接創建臨時項目:

使用默認設置:

頁面展示:

關閉 Intercept :如果不關閉,則會攔截瀏覽器所有經burpsuite代理(proxy)的請求

配置瀏覽器

使用Firefox瀏覽器,配置代理:(Tips:在配置代理之前請先安裝ca證書,不然https請求會存在error!!!安裝CA證書)

配置完成後隨便訪問一個網頁,burpsuite會將訪問記錄下來:

如果開啟intercept,請求會被攔截,需要手動去點擊"Foreword"才能發送出去。

Tips:演示之前還需要做一個操作,允許Firefox瀏覽器抓取localhost的數據包!!!(很重要)

  • 在Firefox瀏覽器中輸入 about:config
  • 搜索 network.proxy.allow_hijacking_localhost ——允許代理劫持本地主機
  • 雙擊值,改為true 即可!

接下來已pikachu平台來做演示。

  • 通過Proxy:HTTP history獲取要進行攻擊的請求方式
    • 可以在這裡直接講請求方式發送到intruder
  • 查看intruder並進行配置
  • 對請求進行分析,判斷是否滿足暴力破解的要求
  • 如果能進行爆破,用變數替換請求中的關鍵欄位(見上圖);
    • 右側'add'表示添加一個變數(選擇要設置變數的欄位,點擊add即可)
    • 如果是從proxy history添加過來的,自動會設定變數,根據需要自行取捨
  • 根據需要選擇attach type;
  • 為變數賦值為暴力破解對應的字典;
  • 配置完成後開始破解。

Burpsuite使用指南

參見:burpsuite實戰指南