驗證碼機制之驗證碼重複使用
介紹
- 通常在網站的註冊、登入、留言板以及評論區等頁面會設計有驗證碼。
- 如果設計不合理,將會導致驗證碼在驗證成功一次之後,下次使用的時候就不再重新整理也就是可重複使用。
驗證碼重複使用的危害
- 惡意註冊
- 暴力破解
- 無限刷帖
漏洞原理
- 通常情況下,驗證碼校驗流程如下所示,當伺服器端受理請求後,沒有將上一次儲存的session及時清空,將會導致驗證碼可重複使用
測試案例
案例
通過重複使用驗證碼實現登入頁面暴力破解。
測試方法:通過重放請求,觀察返回的資訊提示來進行判斷。如果通過重放沒有提示
驗證碼錯誤″之類的資訊,而只是提示“使用者名稱密碼錯誤″這些資訊,就說明存在漏洞
第一步 抓取驗證碼驗證資料包
第二步 將資料包重複使用,
防禦方案
當伺服器端處理完一次使用者提交的請求之後,及時將 session域中的驗證碼清除,並生成新的驗證碼。
摘抄
人生最大的幸福,就是確信有人愛你,
有人因為你是你而愛你,或更確切地說,
儘管你是你,有人仍然愛你。
–雨果《悲慘世界》
相關文章
- JavaWeb——驗證碼功能解決表單重複提交問題(使用谷歌驗證碼jar包為例)JavaWeb谷歌JAR
- 隨機驗證碼隨機
- 驗證碼原理及驗證
- 手機號碼驗證方法(正則驗證)
- 驗證碼---js重新整理驗證碼JS
- Android之window機制token驗證Android
- 網路驗證之授權碼使用
- 手機號碼驗證
- 6.9找回機制介面安全&驗證碼token介面
- JavaScript驗證碼生成和驗證效果JavaScript
- Django之圖形驗證碼Django
- java之使用Servlet生成驗證碼的原始碼分享JavaServlet原始碼
- 登入驗證碼生成kaptcha(輸入驗證碼)APT
- js驗證手機號碼JS
- oracle 開啟複雜密碼驗證Oracle密碼
- Laravel - 驗證碼Laravel
- Response驗證碼
- PHP驗證碼PHP
- Java驗證碼—ValidateCode的使用Java
- 【驗證碼逆向專欄】某多多驗證碼逆向分析
- easy-captcha實現驗證碼驗證APT
- 影片直播app原始碼,傳送驗證碼 驗證碼識別APP原始碼
- PHP 驗證身份證號碼PHP
- 常見驗證碼的弱點與驗證碼識別
- 十位隨機驗證碼隨機
- 應用:隨機生成驗證碼隨機
- ios 手機驗證碼獲取iOS
- 【驗證碼逆向專欄】某驗“初代”滑塊驗證碼逆向分析
- 使用node+puppeteer破解驗證碼
- gofiber: 使用圖形驗證碼dGo
- 使用 Turing 破解滑塊驗證碼
- django 驗證碼框架Django框架
- 驗證碼識別
- 圖形驗證碼
- laravel(五) 驗證碼Laravel
- 【驗證碼逆向專欄】某驗三代滑塊驗證碼逆向分析
- 【驗證碼逆向專欄】某驗四代滑塊驗證碼逆向分析
- JQuery表單驗證(包括:使用者名稱,手機號,密碼,確認密碼,驗證碼60s)jQuery密碼