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