暴力破解及驗證碼安全


 驗證碼客戶端驗證繞過

只在客戶端用js做驗證

  驗證碼由客戶端js生成並且僅僅在客戶端用js驗證。

實驗條件:需要安裝配置pikachu漏洞練習平台,需要安裝Burp suite 2.0工具

 pikachu例子:

 抓包后發送到重發器,輸入錯誤驗證碼查看響應的提示,沒有提示驗證碼錯誤,說明是js驗證。

測試器中設置變量和有效載荷

進行爆破密碼:

 驗證碼保存在響應html

 例如:索尼驗證碼實現缺陷:  http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2012-06634

            將驗證碼放到寫到html中,通過burp獲取html中的驗證碼就可以進行爆破。

 驗證碼輸出在cookie中

有些系統默認不顯示驗證碼,而是在用戶輸入錯誤一定次數之后再出現。那是如何判斷用戶已經錯誤幾次呢?

  1. 在cookie中寫入一個標記,例如loginErr = 1,后續錯誤累加。
  2. 在session中寫入一個標記,例如loginErr = 1,后續錯誤累加。

問題在於,要是攻擊者不帶cookie提交HTTP請求呢?或者攻擊者不斷更新Cookie中loginErr的值反復提交呢?這樣程序因為無法獲取cookie/sessionID,會認為攻擊者是首次訪問,

無論什么時候,驗證碼都不會出現。

例子:5173驗證碼可被繞過  http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2012-05151

驗證碼服務端驗證繞過

驗證碼不過期

驗證碼使用后,沒有及時銷毀會話導致驗證碼復用(php中默認有23分鍾才能自動銷毀驗證碼)。

pikach上面的例子:

源碼解釋:

實例:使用沒有銷毀的驗證碼,暴力破解密碼

輸入正確的用戶名,錯誤密碼,正確的驗證碼然后抓包,抓包成功后發到【重發器】-->點擊【發送】響應中返回【用戶名或密碼錯誤,說明驗證碼輸入正確。

 將重發器中代碼發送到【測試器】進行暴力破解設置

有效載荷中設置

爆破成功

 沒有進行非空判斷

很多時候,遺留了驗證過程中驗證碼為空的情況,例如去掉cookie中的某些值或者請求中驗證碼參數。

例子:輸入cmseasy驗證碼繞過、ecshop驗證碼繞過、ecshop暴力破解幾個關鍵字到烏雲中查看具體例子。

token防爆破繞過

需求:輸入正確(或錯誤)用戶名,錯誤密碼點擊login,使用burp抓包爆破密碼:

pikach中暴力破解--->token防爆破

已輸入正確用戶名,錯誤密碼點擊login,burp抓包發送到Intruder

Intruder中設置,清除全部選項--->變量只添加password和token,攻擊方式選擇音叉

 有效載荷--->password密碼第一個參數設置選擇1,然后復制粘貼保存在本地的常用密碼:

有效載荷--->token選擇2,有效載荷類型選擇【遞歸搜索】

選項中--->Grep-Extract(從響應在提取有用選項)--->添加在提取的grep項中設置返回響應中的匹配模式,然后點擊OK。

 

匹配

 需要將線程數設置為1

開始攻擊如下圖爆破成功:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM