驗證碼的分類:
目前市面上驗證碼的主要分為兩大類:session驗證碼、cookie驗證碼。
今天主要講Session驗證碼。Session驗證碼顧名思義就是跟會話有關系,當客戶端每次訪問登錄或者注冊頁面的時候,會執行一次驗證碼生成的操作,然后把生成的驗證碼保存到session的某個參數中(比如我們保存到名稱為“VerificationCode”),在用戶執行登錄或者注冊的時候,就會去session中去取VerificationCode這個參數的值,與其進行對比,如果一樣,則能成功通過,然后繼續執行登錄成功或者注冊的操作。在輸入驗證碼完成之后,就沒有再次執行重新刷新驗證碼的操作,只有客戶端沒有關閉,session中就一直保存有最后一次生成的驗證碼的信息,所以我們只要客戶端不關閉,就可以用一個驗證碼碼來登錄或者注冊多個賬號。
我們要如何來繞過session驗證碼驗證?
前面說的也許你有些不理解,也許你會問,什么是只有客戶端不關閉?我都登錄了,都發生跳轉了,那還能怎么辦?這個問題簡單,既然我們都想要繞過了驗證碼了,那我們的需求肯定是想批量登錄或者是批量注冊了,那我們肯定得是自己寫一個登錄或者注冊的客戶端了,那跳轉不跳轉還不是我們控制,一個賬號一個線程來登錄,那客戶端還不是我們之前的客戶端,那么session還不是一樣,那驗證碼當然也還是一樣的了。關於寫客戶端的抓包等問題,我想必大家都會了,不會的同志可以到我博客去找抓包分析的教程來看看。
關於繞過驗證碼,我們來寫個例子測試(例子我用的 易語言,考慮到很多人沒學java或者c++之類的,當然大家可以用java,c++等來做,思路都一樣)。我們來做個 不倒翁OL(賭博網站,勸學習技術,遠離賭博)的批量注冊和批量登錄的工具。
首先,我們來繪制界面,如圖
執行登錄(賬戶cikelm和opt222都用同一個驗證碼68MK)
兩次登錄的驗證碼都是68MK,都能登錄成功 (注冊就不演示了,一樣的可以)
所以我們只要自己寫一個客戶端,然后一個驗證碼就可以多賬戶登錄或者批量注冊了。