999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Selenium的SQL注入漏洞檢測系統的研究

2016-09-20 08:14:20栗迎結任洪敏
現代計算機 2016年21期
關鍵詞:頁面檢測系統

栗迎結,任洪敏

(上海海事大學信息工程學院計算機系,上海 201306)

基于Selenium的SQL注入漏洞檢測系統的研究

栗迎結,任洪敏

(上海海事大學信息工程學院計算機系,上海 201306)

在對Web應用進行安全漏洞檢測時,手動檢測和所使用的網頁比對算法都會影響到檢測的準確率和效率,在傳統的SQL注入漏洞檢測技術的基礎上建立一個基于Selenium的自動化檢測系統,并使用優化的Simhash文本相似性檢測算法來提高系統性能,通過實驗驗證該系統的可行性和檢測結果的可信度。

Web漏洞;SQL注入;Selenium;Simhash

0 引言

在計算機技術飛速發展的當今社會,隨著互聯網的普及使用,網絡成為了人類生活和工作不可或缺的一部分。各種各樣的Web應用也被大家使用,這些作為人類溝通交流的主流載體,承載著大量的私有或公有信息。但是,網絡給人類帶來便利的同時,也不可避免的出現大量漏洞,在這其中,SQL注入漏洞是一種最常見也是危害性最大的網絡漏洞,如果這些帶有漏洞的Web應用受到攻擊,數據庫里的信息遭到泄露,就會極大影響人類生活,甚至是經濟發展和社會穩定。

因此,為了防御Web應用受到的SQL注入攻擊,人們采用各種漏洞掃描技術主動檢測SQL注入漏洞,避免一些網絡安全隱患。本文針對現有檢測技術的效率問題,在基于Selenium測試用例的基礎上建立一個針對小型網站的自動化SQL注入漏洞檢測系統。

1 SQL注入

SQL語言是用來對關系數據庫進行結構化查詢的語言。SQL注入的概念就是把SQL命令插入到Web域名或頁面表單的字符串中,由于SQL注入表面上與一般的Web訪問請求相似,防火墻等監控設備不容易檢測到,服務器便會執行惡意的SQL命令。SQL注入攻擊的基本原理:構建符合語法要求的SQL語句,插入到網頁鏈接地址和form表單中,Web應用執行SQL語句,得到攻擊結果。

現有的對SQL注入漏洞的檢測可以分為客戶端檢測和服務端檢測兩種。客戶端檢測是通過比較注入前后網頁的變化來實現的;而服務端檢測需要通過檢測后臺代碼、數據庫等來實現,屬于白盒測試。本文對SQL注入漏洞的檢測是基于Selenium的黑盒測試,也就是客戶端檢測,先通過服務器發送一次正常請求,得到一個頁面;然后構造SQL語句再次發送請求,又得到一個頁面,通過網頁比對算法比較兩個網頁差異,然后根據測試用例判斷SQL注入漏洞是否存在。

2 Simhash網頁特征值比對算法

進行網頁比對的算法有很多,其中Simhash算法是目前Google公司在使用的海量數據查重算法,該算法的高效性也是被公認的。Simhash算法分為5個步驟:分詞、hash、加權、合并、降維。算法的原理如圖1所示。

利用Simhash算法比較網頁特征值的主要思想是:首先將兩個頁面的HTML文檔以詞為單位進行拆分處理,然后通過Hash算法把每個詞計算成Hash值,通過Simhash算法分別計算出兩個網頁的特征值,進行比較后便可判斷兩個網頁的異同。流程如下:

(1)對HTML文檔進行分詞處理

HTML文檔中的各個部分,各個符號都有不同的意義,因此若要計算出一個HTML文檔的特征值,就需要對HTML文檔以詞為單位進行拆分處理,如去除停詞,詞根還原。

圖1 Simhash算法原理圖

(2)調用Simhash算法計算特征值

得到分詞的HTML文檔后,首先用傳統hash算法計算出每個詞的hash值,這樣就把字符串變成一串數字;然后對生成的hash值進行縱位累加,如果該位為1,則simhash相應位的值加1,否則減1。然后對這串數字進行降維處理,如果每一位大于0記為1,小于0記為0。這樣便得出一個HTML文檔的Simhash值。

(3)計算特征值之間的海明距離

對于兩個二進制串來a和b說,海明距離的值就相當于a和b進行異或運算后結果中1的個數。根據上一步得出的Simhash值計算出之間的海明距離,對于小網站來說,海明距離大于0時便可判斷兩個HTML文檔存在差異,海明距離的值越大,差異就越大。通過該方法判斷網頁差異的方式是很高效的,并且可通過設置海明距離的大小來判斷網頁的差異程度。

3 基于Selenium的SQL注入漏洞檢測系統

Selenium是一個用于對Web應用程序進行黑盒測試的工具。Selenium的測試用例直接運行在瀏覽器中,就像真正的用戶在操作一樣。Selenium支持IE、Firefox、Google Chrome等多種瀏覽器以及Java、C#、Ruby等多種運行語言的編程自動生成,用例制作簡單,運行快。為了實現自動化測試,本系統基于Java開發,采用Selenium自動化測試框架來實現,實現了對Web應用SQL注入漏洞的自動檢測,并且對SQL注入漏洞檢測方法進行相關優化。

3.1 基于Selenium的SOL注入漏洞檢測系統設計

本文將系統分為四大模塊,系統的結構設計如圖2:

圖2 SQL注入漏洞檢測系統

其中,每個模塊實現的功能如下:

(1)網絡爬蟲模塊

該模塊調用Selenium2中的FindElements()方法,通過標簽名找到發送正常請求后所得頁面的url和form表單,并把其保存為HTML文檔,為構造SQL攻擊語句做準備。

(2)構造SQL注入語句模塊

該模塊根據編寫的測試用例自動構造多種SQL語句對上一個模塊保存的HTML文檔中的url和form表單進行SQL注入,然后將注入后發送請求得到的HTML頁面保存。

(3)SQL注入漏洞檢測模塊

該模塊對前兩個模塊中保存的HTML文檔,包括正常請求的HTML文檔和SQL注入后的HTML文檔,利用Simhash算法分別對兩個HTML文檔進行分詞處理,計算后產生一個二進制的特征值。通過計較兩個特征值之間的海明距離來判斷網頁的差異程度。然后根據測試用例的判斷標準來判斷漏洞是否存在。

(4)檢測報告生成模塊

在完成SQL注入漏洞檢測之后,將待測網站網址、SQL注入漏洞所在頁面網址、SQL注入點和漏洞檢測時間等數據生成一份檢測報告放在一份txt格式的文檔中。

3.2 基于Selenium的SOL注入漏洞檢測系統實現

(1)系統界面

系統基于Java實現,主界面如下圖所示。操作過程為:首先在地址欄中輸入待檢測的網站地址,然后點擊開始按鈕,系統自動開始檢測。檢測過程和檢測結果都會顯示在文本區域內。

圖3 系統主界面

(2)Selenium實現網頁爬蟲模塊

網頁爬蟲模塊主要通過調用Selenium的API接口,按深度優先遍歷網頁的鏈接、表單。對于表單,提取其<input>屬性,作為待注入的參數。將遍歷得到的鏈接,加入隊列,啟動另外的線程,訪問鏈接隊列,調用Selenium的drive方法訪問鏈接,獲取網頁的源代碼,以供(3)中漏洞檢測模塊使用。主要調用的函數及實現功能如下:

WebDriver driver=new FirefoxDriver();//加載Selenium的火狐瀏覽器驅動組件

driver.get(“http://xxxx”);//自動調用瀏覽器訪問

List<WebElement>forms=driver.findElements(By.tag-Name("form");

//調用Selenium的API方法,獲取當前頁面中所有表單<form></form>標簽

List<WebElement>forms=driver.findElements(By.tag-Name("a");

//獲取當前頁面中所有鏈接<a>…</a>標簽

driver.get(forms.get(i).getAttribute("action");

//獲取<form></form>表單中action(URL)的值

String page=driver.getPageSource();//調用Selenium的API方法,獲取當前頁面的源代碼

(3)Simhash算法實現漏洞檢測模塊

漏洞檢測模塊是本系統的核心模塊,主要利用Java語言實現了Simhash算法,并對(2)中經過SQL注入攻擊前后下載得到的頁面文件進行計算,以判別是否存在漏洞。主要代碼如下所示:

StringTokenizer stringTokens=new StringTokenizer(this.tokens);//定義分詞的大小

while(stringTokens.hasMoreTokens(){

String temp=stringTokens.nextToken();

BigInteger t=this.hash(temp);

for(int i=0;i<this.hashbits;i++){

BigInteger bitmask=new BigInteger("1").shiftLeft(i);

if(t.and(bitmask).signum()!=0){

v[i]+=1;

}else{

v[i]-=1;

}//根據分詞大小對文本分詞,并對分詞賦予權值

BigInteger fingerprint=new BigInteger("0");

StringBuffer simHashBuffer=new StringBuffer();

for(int i=0;i<this.hashbits;i++){

if(v[i]>=0){

fingerprint=fingerprint.add(new BigInteger("1").shiftLeft (i);

simHashBuffer.append("1");

}else{

simHashBuffer.append("0");

}//通過hash函數計算各個特征向量的hash值

his.strSimHash=simHashBuffer.toString();//得到hash值

3.3 優化SQL注入漏洞檢測方法

在所設計的基于Selenium的SQL注入漏洞檢測系統中,將系統性能做優化處理。由于一些Web應用具備SQL注入攻擊防御機制,例如對某頁面攻擊后返回的是一個提示“請輸入合法參數”的頁面,這時的頁面與正常響應頁面的內容肯定不相同,其Simhash值也不相同,但并不能證明該存在漏洞,因為并沒有攻擊成功。因此需對漏洞檢測方法進行改進:首先調用Selenium2中的getPageSource()方法分別將發送正常請求后的頁面a和SQL注入后的頁面b保存為HTML文檔,存放在本地。然后調用Simhash算法對兩個網頁進行處理,計算出網頁的Simhash值,根據SQL注入測試用例設定不同的判斷標準,按照標準進行比對,若滿足標準則證明所構造的SQL注入語句被執行,即系統存在SQL注入漏洞。這樣根據SQL注入語句類型來設置判斷標準從而進行漏洞檢測的方法,具有一定的嚴謹性,不僅優化了系統的檢測效率,而且提高了檢測結果的可信度。

4 系統測試

4.1 SQL 注入測試用例

對于一些具備防御機制的Web應用來說,簡單的SQL注入語句會被過濾而無法成功攻擊,因此,若要檢測出漏洞,就需要構造不同等級的SQL語句來進行攻擊,針對Web應用客戶端的SQL注入攻擊語句有如下7種,分為初級、中級、高級三個級別,每一種注入類型都有不同的判斷標準。SQL注入測試用例如下表所示:

表1 測試用例

在該表中,A類屬于初級SQL注入語句;B、C兩種屬于中級SQL注入語句;而后四種D、E、F、G則屬于高級SQL注入語句,主要針對一些具有防御機制的Web應用客戶端。

4.2 漏洞檢測系統功能性驗證

利用該系統對測試網站進行A、B、C三類漏洞檢測,該網站大約含有150個鏈接。網絡爬蟲的遞歸深度為5。最終對網站的測試結果輸出如下圖:

圖4 測試結果

對測試結果統計如下表所示。

表2 測試結果統計

4.3 漏洞檢測系統有效性驗證

在利用該系統對網站進行SQL注入測試之后,檢測報告中會給出存在漏洞并建議再次驗證的鏈接地址,對這些地址進行手動驗證,即進行人工注入。同時選取市面上常用的啊D、Pongolin兩種SQL注入漏洞檢測工具,對同一個測試網站進行相同的SQL注入攻擊,并比較檢測結果。比較結果如表所示:

表3 不同檢測工具結果比較

對比不同檢測工具的檢測結果分析可發現,本文檢測系統在檢測率上遠遠優于另外兩種,同時檢測漏洞的準確率也很高,雖然平均檢測時間稍長,但系統的整體性能優于其他檢測工具。

5 結語

SQL注入漏洞是威脅Web安全的重要因素,因此SQL注入漏洞的檢測對于網絡安全有很高的應用價值,只有快速準確地檢測出漏洞,才能在應用受到攻擊前將其清除。本文把Selenium自動化測試工具和Simhash網頁快速比較技術應用于SQL注入漏洞檢測系統中,不僅實現了自動化測試,而且提高了漏洞檢測的效率和準確率。但該檢測系統在對大網站或者一些擁有簡易防注入措施的網站進行檢測過程中產生誤報,從而影響檢測結果的正確率和檢測的效率。因此需要構造更多類型的SQL注入攻擊語句,同時也要優化網頁相似度比對方法,來加強系統在不同情況下檢測SQL注入漏洞的能力,優化系統性能。

[1]張晨,汪永益,王雄等.基于網頁DOM樹比對的SQL注入漏洞檢測[J].計算機工程,2012.18:111-115.

[2]Clarke J.SQL注入攻擊與防御[M].黃曉磊,李化,譯.北京:清華大學出版社,2010.

[3]邊耐政,張琳.一種基于Selenium的Web自動化測試低耦合框架[J].計算機應用與軟件,2014,31(8):13-16,37.

[4]羅明宇.基于Selenium的安全自動測試技術的研究與實現[D].廣東工業大學,2015.

[5]池水明,闞歆煒,張昱等.基于Simhash的SQL注入漏洞檢測技術研究[J].計算機時代,2014.3:3-5.

[6]Inyong Lee,Soonki Jeong,Sangsoo Yeo,Jongsub Moon.A novel method for SQL Injection Attack Detection Based on Removing SQL Query Attribute Values[J].Mathmatic 1 and Computer Modelling,2011,55(1):58-68.

[7]練坤梅,許靜,田偉等.SQL注入漏洞多等級檢測方法研究[J].計算機科學與探索,2011,5(5):474-480.

[8]Unmesh G.Selenium Testing Tools Cookbook[M].Packt Publishing,2012:11-33.

[9]劉書一.基于文本相似度的網頁消重策略[J].計算機應用與軟件,2011,28(11):228-278.

[10]郭俊剛.基于Eclipse的自動化測試工具的研究與實現[D].北京交通大學,2012.

[11]高洪濤.SQL注入攻擊途徑及策略分析[J].網絡安全技術與應用,2011:14-16

[12]成曉利.Web應用SQL注入漏洞測試系統的研究與實現[D],2012.

SQL Injection Vulnerability Detection System Based on Selenium

LI Ying-jie,REN Hong-min
(College of Information Engineering,Shanghai Maritime University,Shanghai 201306)

In the Web application security vulnerability detection,manual inspection and the use of page alignment algorithm will affect the detection accuracy and efficiency,in the traditional SQL injection vulnerability detection technology based on the establishment of an automatic detection system based on the selenium and use optimization Simhash text similarity detection algorithm to improve the performance of the system,the credibility of the system,the feasibility and results is verified by experiment.

Vulnerabilities with Web Applications;SQL Injection;Selenium;Simhash

1007-1423(2016)21-0020-05

10.3969/j.issn.1007-1423.2016.21.004

栗迎結(1992-),女,河南開封人,碩士,研究方向為軟件開發、自動化測試

2016-05-04

2016-07-20

任紅敏(1969-),男,上海人,博士,副教授,研究方向為軟件體系結構、構件技術、軟件復用、過程工程、軟件項目管理,基于社會計算、群體智能、人本計算、社會網絡、輿情分析等技術的軟件資產管理、船舶協同設計知識管理等

猜你喜歡
頁面檢測系統
大狗熊在睡覺
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: 欧美日韩精品一区二区在线线| 色综合综合网| 亚洲中文字幕23页在线| 欧美午夜在线播放| 少妇极品熟妇人妻专区视频| 一级毛片高清| 亚洲看片网| 免费99精品国产自在现线| 国产精品久久久精品三级| 国产一区二区丝袜高跟鞋| 无码人中文字幕| 中国国产高清免费AV片| 亚洲无码高清一区二区| 精品国产黑色丝袜高跟鞋| 亚洲精品中文字幕午夜| 中文字幕欧美成人免费| 就去吻亚洲精品国产欧美| 亚洲天堂网视频| 国产日本一线在线观看免费| 国产后式a一视频| 亚洲精品在线观看91| 欧美午夜网站| 极品性荡少妇一区二区色欲| 亚洲免费福利视频| 五月婷婷导航| 九色综合伊人久久富二代| 午夜激情福利视频| 亚洲国产成人精品青青草原| 欧美日韩中文字幕二区三区| 91久久夜色精品国产网站| 国产91精选在线观看| 日韩欧美中文亚洲高清在线| 亚洲香蕉在线| 免费高清毛片| 亚洲二三区| 在线免费看黄的网站| 重口调教一区二区视频| 久久频这里精品99香蕉久网址| 国产香蕉一区二区在线网站| 亚洲人成在线精品| 美女免费精品高清毛片在线视| 久久久久人妻精品一区三寸蜜桃| 国产AV无码专区亚洲精品网站| 青青操视频免费观看| 国产最新无码专区在线| 超碰精品无码一区二区| 中日韩一区二区三区中文免费视频 | 中日韩欧亚无码视频| 99久久国产综合精品女同| 色噜噜综合网| 国产欧美性爱网| 国产91熟女高潮一区二区| 手机永久AV在线播放| 亚洲无码视频一区二区三区 | 国产成人三级| 国产好痛疼轻点好爽的视频| 欧美视频在线观看第一页| 久久精品人人做人人爽电影蜜月| 喷潮白浆直流在线播放| 免费无码网站| …亚洲 欧洲 另类 春色| 黄色网址手机国内免费在线观看| 国产中文在线亚洲精品官网| 国产免费高清无需播放器| 国产91精选在线观看| 巨熟乳波霸若妻中文观看免费| 91精品综合| 精品91视频| 日韩av无码DVD| 日本草草视频在线观看| 情侣午夜国产在线一区无码| 成年人国产网站| 国产精品99在线观看| 久久久精品国产SM调教网站| 欧美人与性动交a欧美精品| 国产第一色| 波多野结衣二区| 中文国产成人精品久久| 国产aaaaa一级毛片| 国产亚洲精品91| 亚洲 欧美 中文 AⅤ在线视频| 伊人蕉久影院|