一種基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞檢測方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全中的漏洞檢測技術(shù),尤其涉及一種基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞檢測方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)時代的來臨,世界全面信息化時代也隨之到來。借助以計算機、互聯(lián)網(wǎng)等先進技術(shù),人們越來越習(xí)慣于在各種各樣的網(wǎng)站上獲得信息和接受服務(wù),Web系統(tǒng)由于其高兼容性和用戶友好性,已成為當(dāng)下互聯(lián)網(wǎng)信息系統(tǒng)中最主流的系統(tǒng)類型。于此同時,Web系統(tǒng)的安全性也正面臨嚴(yán)峻的挑戰(zhàn)。
[0003]Web系統(tǒng)通常由Web瀏覽器和Web服務(wù)器兩部分組成,瀏覽器和服務(wù)器之間使用超文本傳輸協(xié)議(Hyper Text Transfer Protocol, HTTP)進行信息交互。由于HTTP協(xié)議的開放性,攻擊者可以模擬Web服務(wù)器的響應(yīng),通過構(gòu)造特定的HTTP數(shù)據(jù)遠(yuǎn)程向客戶端的Web瀏覽器注入惡意代碼并執(zhí)行,從而危害客戶端計算機系統(tǒng)的安全性,以實現(xiàn)信息竊取、系統(tǒng)劫持等目的。這類攻擊通常被稱為遠(yuǎn)程代碼注入攻擊(Remote Code Inject1n),可被攻擊者利用進行此類攻擊的漏洞被稱為遠(yuǎn)程代碼注入漏洞(Remote Code Inject1nExploit)。
[0004]目前大多數(shù)網(wǎng)絡(luò)防火墻、入侵檢測系統(tǒng)等安全工具,針對某些遠(yuǎn)程代碼注入漏洞,如跨站腳本(Cross-Site Script,XSS)等,提供有效的檢測與預(yù)防手段。但是,對于利用Web瀏覽器開放接口的第三方插件(Plug-1n)實施的遠(yuǎn)程代碼注入,目前尚未引起安全行業(yè)內(nèi)相關(guān)廠商的足夠重視。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是針對【背景技術(shù)】中所涉及的缺陷,提供一種基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞檢測方法,,用以檢測Web瀏覽器是否有潛在的遠(yuǎn)程代碼注入漏洞,從而增強Web系統(tǒng)的安全性。
[0006]本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:
一種基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞檢測方法,包含以下步驟:
步驟I),構(gòu)建瀏覽器幫助對象,設(shè)定其編碼格式為E,并設(shè)定觸發(fā)網(wǎng)址,用于在檢測到瀏覽器中輸入地址的首部包含觸發(fā)網(wǎng)址時、對所述輸入地址在觸發(fā)網(wǎng)址后的字符串解碼后作為命令行字符串執(zhí)行;
步驟2),將瀏覽器幫助對象部署到待檢測的對象Web瀏覽器上;
步驟3),構(gòu)建命令行字符串CM為遠(yuǎn)程注入代碼;
步驟4),根據(jù)編碼格式E調(diào)用相應(yīng)的編碼算法對命令行字符串CM進行編碼;
步驟5),將經(jīng)過編碼后的命令行字符串CM附加到所述觸發(fā)網(wǎng)址的尾部,得到字符串
L ; 步驟6),構(gòu)造超文本標(biāo)記語言文件H,將字符串L作為其統(tǒng)一資源定位符;
步驟7 ),采用待檢測的對象Web瀏覽器打開超文本標(biāo)記語言文件H,并訪問統(tǒng)一資源定位符L所指向的地址;
步驟7.1),若瀏覽器執(zhí)行了命令行字符串CM,判斷待檢測的對象Web瀏覽器存在基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞;
步驟7.2),若瀏覽器沒有執(zhí)行命令行字符串CM,判斷待檢測的對象Web瀏覽器不存在基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞。
[0007]作為本發(fā)明一種基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞檢測方法進一步的優(yōu)化方案,所述步驟I)中瀏覽器幫助對象的具體執(zhí)行步驟如下:
步驟1.1 ),獲取觸發(fā)網(wǎng)址的字符串長度LD ;
步驟1.2),獲取瀏覽器中的輸入地址,并獲取輸入地址的字符串長度LN ;
步驟1.3),檢查觸發(fā)網(wǎng)址是否為輸入地址的真子串,且觸發(fā)網(wǎng)址處于輸入地址的首部;若是,執(zhí)行步驟1.4);若否,終止執(zhí)行;
步驟1.4),獲取輸入地址中LD到LN-1處的真子串C ;
步驟1.5),根據(jù)編碼格式E,調(diào)用相應(yīng)解碼算法對真子串C解碼后作為命令行字符串執(zhí)行。
[0008]作為本發(fā)明一種基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞檢測方法進一步的優(yōu)化方案,所述Web服務(wù)器采用機架式服務(wù)器。
[0009]作為本發(fā)明一種基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞檢測方法進一步的優(yōu)化方案,所述Web服務(wù)器的型號為聯(lián)想萬全R520 G7。
[0010]作為本發(fā)明一種基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞檢測方法進一步的優(yōu)化方案,所述Web服務(wù)器采用塔式服務(wù)器。
[0011]作為本發(fā)明一種基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞檢測方法進一步的優(yōu)化方案,所述Web服務(wù)器的型號為聯(lián)想萬全T260 G3。
[0012]本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
本發(fā)明基于Web瀏覽器幫助對象技術(shù),通過編寫特定的瀏覽器幫助對象(BrowserHelper Ob ject,BHO),可繞過Web瀏覽器端的漏洞檢測措施實施遠(yuǎn)程代碼注入,具有極高的穿透性,能夠發(fā)現(xiàn)Web瀏覽器深度隱藏的遠(yuǎn)程代碼注入漏洞,進而增強Web系統(tǒng)的安全性。
【附圖說明】
[0013]圖1是本發(fā)明一種基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞檢測方法的流程圖。
【具體實施方式】
[0014]下面結(jié)合附圖對本發(fā)明的技術(shù)方案做進一步的詳細(xì)說明:
如圖1所示,本發(fā)明中公開了一種基于Web瀏覽器幫助對象的遠(yuǎn)程代碼注入漏洞檢測方法步驟。
[0015]步驟101:編寫瀏覽器幫助對象B,集成開發(fā)環(huán)境為Microsoft Visual Stud1.Net 2008,使用語言為C#。在瀏覽器幫助對象B中實現(xiàn)1bjectWithSite接口,并聲明SetSite方法,在SetSite方法中對BeforeNavigate2事件添加處理句柄F,其中F算法流程如步驟102到步驟106所示:
步驟102:設(shè)觸發(fā)網(wǎng)址為字符串D,其值為“http://www.abc.com/”,其長度LD為19。設(shè)編碼格式E的值為“base64”。
[0016]步驟103:獲取瀏覽器中的輸入地址N,N為字符串,其長度為正整數(shù)LN。
[0017]步驟104:檢查字符串D是否為瀏覽器中的輸入地址N的真子串,且D處于N的首部。若是,執(zhí)行步驟105;若否,算法終止。
[0018]步驟105:取瀏覽器中的輸入地址N中LD到LN-1處的真子串,即N中偏移地址19到N末尾閉區(qū)間子串,設(shè)為字符串C。
[0019]步