本發(fā)明涉及驗證碼識別領域,具體涉及一種在Web漏洞掃描器中識別字符驗證碼的方法。
背景技術:
在Web漏洞掃描器掃描目標是Web網(wǎng)站或Web系統(tǒng)的時候,除了輸入常見的用戶名、密碼外,還要識別驗證碼,才能成功登錄,而驗證碼是隨機的。只有登錄后才能進行深入掃描的,這給Web漏洞掃描器進一步發(fā)現(xiàn)更多漏洞帶來阻礙,所以需要掃描過程中能自動識別驗證碼,進一步提高Web漏洞掃描器發(fā)現(xiàn)漏洞的能力。
常見的Web漏洞掃描,很少有識別驗證碼從而進行登錄的功能,如果遇到需要識別驗證碼的場景,只能先人工識別驗證碼,登錄成功后,記錄Cookie中的信息,提供給Web漏洞掃描器進行掃描。
如果掃描目標有大量都是需要識別驗證碼,那么掃描目標的檢測將極其繁瑣,都得執(zhí)行一遍人工驗證碼識別,得到Cookie信息,再進行進一步掃描。另外,很多Web網(wǎng)站或Web系統(tǒng)登錄是有時效性的,如果過期又得重登錄,又將重復進行一次人工識別驗證碼過程。這樣給Web漏洞掃描器使用帶來很多不便。
驗證碼(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart(全自動區(qū)分計算機和人類的圖靈測試)”的縮寫,是一種區(qū)分用戶是計算機還是人的公共全自動程序。特指Web網(wǎng)站或Web系統(tǒng)在登錄等場景中出現(xiàn)的字符驗證碼,防止暴力破解方式進行不斷的登錄嘗試。
字符驗證碼是最為常見的一種驗證碼。大部分字符驗證碼都是由數(shù)字及大小寫英文字母組成的二維圖片,可以通過加入干擾點、干擾線,扭曲、粘貼字符等來提高驗證碼的安全性。驗證碼識別一般可以分為以下三個步驟:預處理、字符分割、字符識別。而每一個步中都有許多圖像處理相關的算法和方法,每種算法或方法并非都適用于任何驗證碼的識別。在特定驗證碼的識別過程中,需要根據(jù)其特征挑選合適的識別算法及方法,才能達到理想的識別率。因此,并沒有傻瓜式的、全自動的、萬能的驗證碼識別工具,互聯(lián)網(wǎng)上傳播的更多的是針對某個或某類特定的驗證碼進行識別的程序。
字符驗證碼識別指對字符驗證碼的驗證碼識別技術。大多數(shù)驗證碼識別研究都是圍繞這種驗證碼展開的。Web漏洞掃描器指專門用于掃描Web漏洞的漏洞掃描器,掃描目標一般是Web網(wǎng)站或Web系統(tǒng)。建庫指在Web漏洞掃描場景下,掃描基于常見的字符驗證碼系統(tǒng)的Web網(wǎng)站或Web系統(tǒng),針對這些特定的字符驗證碼系統(tǒng),進行字符驗證碼識別的特定程序,包括:研究、分類、識別、庫建立,形成一整逐步完善的、常見的字符驗證碼識別庫的過程。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是提供一種在Web漏洞掃描器中識別字符驗證碼的方法,綜合提高字符驗證碼的識別速度和提升字符驗證碼的識別率,從而提高Web漏洞掃描器的掃描效率和掃描范圍。
為解決上述技術問題,本發(fā)明采用的技術方案是:
一種在Web漏洞掃描器中識別字符驗證碼的方法,包括以下步驟:
步驟1:Web漏洞掃描器識別驗證碼組件,將驗證碼識別失敗的信息收集反饋給遠程;
步驟2:遠程根據(jù)收集到的驗證碼組件,比對現(xiàn)有的庫;
步驟3:如果在庫中不存在,建立新的驗證碼識別任務,即批量下載對應驗證碼組件中的驗證碼圖片,進行新的訓練,新增到現(xiàn)有庫中;如果在庫中存在,但識別不出來,根據(jù)收集的反饋數(shù)據(jù)完善到現(xiàn)有的訓練用驗證碼的圖片中,繼續(xù)訓練,更新到現(xiàn)有庫中;
步驟4:Web漏洞掃描器的日常更新后,驗證碼識別庫也進行更新;
步驟5:Web漏洞掃描器爬蟲預登錄設置時,輸入必要信息,選擇驗證碼識別方式;
步驟6:識別出特定的Web應用或根據(jù)選擇的特定Web應用,選擇對應Web應用的驗證碼識別算法;
步驟7:驗證碼識別,包括預處理、字符分割、字符識別;
步驟8:將識別的驗證碼返回;
步驟9:進行Web漏洞掃描器爬蟲的正常掃描。
進一步的,在步驟5中,驗證碼識別方式為自動識別或已經(jīng)知道選擇哪個Web應用的人工協(xié)助識別。
與現(xiàn)有技術相比,本發(fā)明的有益效果是:本發(fā)明中,字符驗證碼是最為常見的一種驗證碼,可以覆蓋了大多數(shù)Web網(wǎng)站或Web系統(tǒng)的驗證碼識別場景;自帶Web應用對應的驗證碼庫,隨著庫的更新和擴充有助于不斷提高識別字符驗證碼的能力,且可以支持更多Web應用的字符驗證碼識別;綜合提高了字符驗證碼的識別速度和提升了字符驗證碼的識別率,從而提高Web漏洞掃描器的掃描效率和掃描范圍。
附圖說明
圖1是本發(fā)明一種在Web漏洞掃描器中識別字符驗證碼的方法流程示意圖。
具體實施方式
下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步詳細的說明。本發(fā)明主要分成兩部分,一是遠程建庫過程,二是在Web漏洞掃描器中識別過程。遠程建庫過程是為了根據(jù)收集的掃描目標的驗證碼組件,不斷訓練,從而提高對應驗證碼組件的識別率。Web漏洞掃描器中識別過程是通過驗證碼識別庫的日常更新,在進行掃描任務時候,使用這個經(jīng)過嚴格訓練的庫,從而解決掃描過程中需要驗證碼識別的問題。
遠程建庫過程
1)Web漏洞掃描器為了提高掃描效率,會識別特定的Web組件,也可以包括驗證碼組件,會將驗證碼識別失敗的信息收集反饋給遠程;2)遠程根據(jù)收集到的驗證碼組件,比對現(xiàn)有的庫;3)如果在庫中不存在,就建立新的驗證碼識別任務。批量下載對應驗證碼組件中一定數(shù)量的驗證碼圖片,進行新的訓練,直到對識別率滿意,新增到現(xiàn)有庫中。如果在庫中存在,但識別不出來,就根據(jù)收集的反饋數(shù)據(jù)完善到現(xiàn)有的訓練用驗證碼的圖片中,繼續(xù)訓練,直到進一步提高識別率,更新到現(xiàn)有庫中。
Web漏洞掃描器中識別過程
1)隨著Web漏洞掃描器的日常更新,驗證碼識別庫也隨著更新;2)預登錄準備。Web漏洞掃描器爬蟲預登錄設置時候,輸入用戶名、密碼等必要信息后,驗證碼選項,選擇自動識別或已經(jīng)知道選擇哪個Web應用人工協(xié)助識別;3)Web應用識別。識別出特定的Web應用或根據(jù)選擇的特定Web應用,選擇對應Web應用的驗證碼識別算法,以此提高識別速度和提升識別率;4)會自帶Web應用對應的驗證碼庫。用來匹配對應的合適算法來識別驗證碼;5)開始驗證碼識別。分為:預處理、字符分割、字符識別;6)將識別的驗證碼返回。同用戶名、密碼等必要信息模擬Web漏洞掃描器爬蟲的登錄過程;7)登錄成功。開始進行Web漏洞掃描器爬蟲的正常掃描。