利用漏洞中驗證碼繞過的小技巧


1. 驗證碼不刷新
 
  導致驗證碼不刷新的原因是:登錄密碼錯誤之后,session中的值沒有更新,
驗證碼不變。驗證碼不刷新通常有以下兩種情況:無條件不刷新、有條件不刷新。
  1.1無條件不刷新
  無條件不刷新是指在某一時間段內,無論登錄失敗多少次,只要不刷新頁面,就可以無限次的使用同一個驗證碼來對一個或多個用戶帳號進行暴力猜解。
 1.2有條件不刷新
  有條件不刷新多見於如下情況:登錄失敗之后,系統會打開一個新頁面或者彈出一個新的警告窗口,提示用戶登錄失敗,點擊確定后返回登錄界面且驗證碼刷新。這種情況下,只要我們不關閉新窗口或彈窗,配合使用Burpsuite的intruder模塊就可以進行暴力破解了。
 
2.驗證碼前端可獲取
 
  這種情況在早期的一些網站中比較常見,主要是因為程序員在寫代碼的時候安全意識不足導致的。驗證碼通常會被他們隱藏在網站的源碼中或者高級一點的隱藏在請求的Cookie中,但這兩種情況都可以被攻擊者輕松繞過。
  2.1驗證碼隱藏在源碼中
  驗證這種情況很簡單,我們只需要記住驗證碼,然后右鍵打開網站源代碼,Ctrl+F搜索,輸入剛才的驗證碼,如果可以成功匹配到,那恭喜你,接下來就可以寫工具,提取源碼中的驗證碼並將其放入每次請求的報文中,來進行帳號破解,這里推薦使用python。
  2.2驗證碼隱藏在Cookie中
  這種情況,我們可以在提交登錄的時候抓包,然后分析一下包中的Cookie字段,看看其中有沒有相匹配的驗證碼,或者是經過了一些簡單加密后的驗證碼。
 
3. 驗證碼空值繞過
 
  驗證碼空值繞過,是在日常的 滲透測試中很容易被我們忽略的一點,實際應用中我們可以通過直接刪除驗證碼參數或者Cookie中的一些值來繞過判斷,進行暴力破解。
 
4. 驗證碼易識別
 
  在平常的漏洞挖掘過程中,如果我們發現登錄的驗證碼非常簡單且易於識別,那我們就可以嘗試使用自動化工具來進行登錄破解了,如PKAV的HTTP Fuzzer。
 
5. 存在無驗證碼頁面
 
  經過測試,如果我們發現網站驗證碼自身並不存在缺陷,那我們接下來就可以嘗試尋找一些其他的登錄頁面或接口來嘗試暴力破解。
   5.1隱藏的頁面
  這種頁面通常是留給測試人員使用的,或者是一些忘記刪除的老界面,利用的前提是該界面依舊可用,一般情況下,我們可以通過掃描器來發現這種頁面。
  5.2 微信公眾號、APP登錄頁面
  很多網站的 web登錄頁面已經做的相當完善了,但是卻在微信公眾后的綁定接口或者是APP的登錄界面上面栽了跟頭,在滲透測試的過程中,一定不要忘了對公眾號和APP的測試。
 
6. 其他繞過方法
 
 6.1萬能驗證碼
  滲透測試的過程中,有時候會出現這種情況,系統存在一個萬能驗證碼,如000000,只要輸入萬能驗證碼,就可以無視驗證碼進行暴力破解。
  6.2驗證碼無效
  這種情況下,無論我們輸入什么數據,驗證碼都會判斷通過,驗證碼形同虛設,這種情況我只遇到過一次。
 6.3驗證碼數量有限
  多見於計算類型的驗證碼,如1+8=?,這種類型的驗證碼嚴格意義上來說不能叫做驗證碼,多刷新幾次驗證碼,我們可能會發現系統中的算數題目只有那么幾道,這種情況下只要將驗證碼全部下載下來,生成一個md5庫,然后將前端生成的驗證碼與本地文件進行對比即可。
 
本文轉自:http://www.51testing.com/html/34/n-3723034.html
 


免責聲明!

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



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