我們在網站登錄界面,為了安全起見,除了填寫用戶名和密碼之外,還會要求用戶輸入驗證碼才能進行登錄,驗證碼的作用最主要的是驗證輸入方是一個在電腦前正在輸入的人,而不是某些程序模擬人的登錄操作,這樣就能有效地避免網站被攻擊者進行暴力破解,從而非法獲得網站的登錄權限,驗證碼的種類也是多種多樣的,其中我們常見的驗證碼就是圖片驗證碼,驗證碼上的內容包括數字、字母、數字字母混合、漢字、算式等,這些字符往往都不太清晰,主要是為了增加識別難度,避免被軟件自動識別。
驗證碼
有些人經常會吐槽某些網站的驗證碼,連輸入者都看不清,需要輸入多次才可以成功,其實使用這樣的驗證碼的網站,往往是非常注重網絡安全的,并且是提供非常重要服務的網站,其中最具代表性的就是12306網站上購買火車票是需要輸入的驗證碼,曾經受到許多網友的吐槽,充分體現了一句話:“能夠多次欺騙購票者的驗證碼,才是最安全的驗證碼。”
奇葩驗證碼
今天我們就來介紹一款驗證碼識別工具Pkav HTTP Fuzzer,來了解一下如何使用工具來自動識別驗證碼,從而對需要驗證碼的登錄界面進行暴力破解,進而也認識一下那些使用所謂“奇葩”驗證碼的網站進行登錄驗證的苦衷,首先我們打開這款工具,非常有意思,它的功能按鈕在最下方,我們選擇“驗證碼識別”,然后選擇圖片型,如下圖所示:
Pkav HTTP Fuzzer
下面我們拿一個網站的登錄界面來演示一下這款工具的使用方法,首先是驗證碼地址,其實就是驗證碼圖片的URL地址,當我們點擊驗證碼圖片時,驗證碼會刷新,我們選擇右鍵單擊驗證碼圖片,選擇屬性點擊,如下圖所示:
驗證碼圖片屬性
就會彈出一個屬性對話框,其中有一個地址(URL),就是這個驗證碼的地址。
屬性對話框
識別模式選擇“單個文本統一塊”,在選擇識別范圍之前我們可以多點擊幾次驗證碼圖片,判斷一下驗證碼的大概類型,這個登錄界面驗證碼的組成為數字字母的混合形式,我們就可以限定為以下字符為:“0123456789abcdefghijklmnopqrstuvwxyz”,因前邊選擇了“自帶識別引擎”,所以“第三方識別引擎”不選擇,當然我們也可以選擇自己的識別庫,然后選擇識別測試,我們發現登錄界面的驗證碼圖片已經發送到驗證碼圖片欄中,旁邊獲取到的驗證碼為:xatf,獲取成功。
識別成功
這時我們就可以點擊下方的“變體設置”,來設置變體,其中分析地址就是我們上圖的登錄界面地址,請求包就是我們用burp suite工具抓取的登錄數據包,可以查看我的《抓包工具Burp Suite的安裝與設置》一文,學習如何安裝burp suite和抓取請求數據包,我們將最下邊的POST數據中的驗證碼和密碼數據分別打上“添加驗證碼標記”和“添加標記”,右邊我們可以點擊“請加載一個外部字典”選擇一個密碼字典,就會出現在旁邊框里邊,到這里我們的變體就設置好了,如下圖所示:
設置變體
然后再點擊下方的“重放選項”,這里我們只需要注意兩點,一是驗證碼長度驗證設置,我們知道驗證碼是4位長度,所以我們設置為固定值4,當我們輸入驗證碼錯誤時,網站會彈窗提示“驗證碼錯誤!”,這時就代表我們識別錯誤了,必須重新識別,我們選擇“字符串匹配”,添加彈出的“驗證碼錯誤!”當出現驗證碼識別錯誤提示時,就會重新驗證發送直到成功。
重放選項
最后一步就是“發包器”了,點擊啟動按鈕,就會自動識別驗證碼,進行暴力破解,這里我就不啟動了,因為是真實的站點,成功與否取決于密碼字典的強大,而且我輸入的用戶名也是自己編的,大概率是沒有這個用戶名的,所以是不會破解成功的,要想查看破解成功的密碼,只要看請求結果中的“長度”信息,與大部分結果都不一樣的那一條大概率就是真正的密碼了,如下圖所示:
發包器
以上就是我們驗證碼自動識別工具的使用及結合burp suite工具進行網站登錄界面暴力破解密碼的全部內容,對Pkav HTTP Fuzzer這款工具有興趣的可以在評論區評論“驗證碼”,我會將這款工具分享給大家,再次提醒大家,大家獲得了工具不要做違法的事,我們的目的是為了提高大家的網絡安全技術,有違底線的事情大家還是及時停止,歡迎關注@科技興了解更多科技尤其是網絡安全方面的資訊和知識。