1. 程式人生 > 其它 >驗證碼繞過思路總結

驗證碼繞過思路總結

總結了一下SRC中常見的驗證碼繞過思路

1. 驗證碼使用後不會銷燬

驗證碼可重複使用,導致可爆破賬戶

 

2. 生成驗證碼字符集可控

驗證碼可控,可自行選擇驗證碼(案例:ThinkCMF 1.X-2.X)

 

3. 驗證碼存放在暴露位置

比如驗證碼藏到cookie裡面,或者藏到編碼後的某些值裡面,藏到圖片的位元組裡面等(有時也會進行加密編碼藏起來)

 

 

4. 驗證碼為空,或8888,0000等可繞過

驗證碼為空,是因為程式邏輯錯誤,驗證碼驗證一次之後本該退出此次驗證碼,生成新的,由於沒有生成新的繼續驗證密碼是否正確

8888,0000等為開發程式時設定的萬能密碼,方便測試,有時候會忘記刪除

1111 2222 3333 4444 5555 6666 7777 8888 9999

 

 

5. 其他對比後驗證碼未銷燬

僅僅校驗了密碼欄位和驗證碼,使用者名稱並未校驗,那麼這裡就可以輸入一個弱密碼(如123456,111111,123123等等),然後反向去遍歷使用者,獲取正確的口令。

 

 

6. 驗證碼尺寸可控

該問題被人們廣為關注源於PHPcms早期版本的後臺登入驗證碼尺寸可控,可用於DDoS。

 

 

7. 驗證碼過於簡單,可輕易機器識別

如良精南方都可識別

8. 待補充...

 

修復方法:

驗證碼設定為6位並設定超時(一分鐘)失效。

建議修改應用程式原始碼,在登入模組中增加對驗證碼正確性的驗證,並且要保證在驗證使用者名稱、密碼或其他資訊之前首先驗證驗證碼的正確性。