亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種SQL注入漏洞定位檢測方法與流程

文檔序號:11138636閱讀:1968來源:國知局
一種SQL注入漏洞定位檢測方法與制造工藝

本發(fā)明屬于計算機(jī)技術(shù)領(lǐng)域,特別涉及信息安全領(lǐng)域,特別是涉及一種SQL注入漏洞定位檢測方法。



背景技術(shù):

隨著互聯(lián)網(wǎng)迅猛發(fā)展,越來越多的WEB應(yīng)用都采取了三級架構(gòu):數(shù)據(jù)庫服務(wù)器、應(yīng)用服務(wù)器和客戶端。用戶在客戶端輸入數(shù)據(jù),應(yīng)用服務(wù)器根據(jù)其輸入構(gòu)建SQL語句,并將SQL語句送至數(shù)據(jù)庫中執(zhí)行操作,最終將結(jié)果返回給用戶。由于數(shù)據(jù)庫中存儲著大量敏感信息,導(dǎo)致其頻繁遭到攻擊,其中最嚴(yán)重的就是SQL注入攻擊。SQL注入攻擊是指攻擊者在合法SQL語句中插入SQL關(guān)鍵字或操作符從而改變SQL語句的語義、語法結(jié)構(gòu),將這些惡意的SQL語句提交給數(shù)據(jù)庫,獲取用戶名密碼等敏感信息,進(jìn)而獲取主機(jī)控制權(quán)限等。OWASP于2013年發(fā)布的十大WEB應(yīng)用安全漏洞中,SQL注入攻擊排名第一。

本發(fā)明提出一種利用滲透測試與程序分析技術(shù)相結(jié)合的方法來實現(xiàn)對SQL注入漏洞的定位。滲透測試階段輸入網(wǎng)站地址,通過模擬攻擊確定引起SQL注入的用戶輸入點,程序分析階段根據(jù)滲透測試階段的結(jié)果,在WEB應(yīng)用系統(tǒng)源代碼中通過數(shù)據(jù)流跟蹤技術(shù)對漏洞產(chǎn)生過程進(jìn)行分析。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是提供一種SQL注入漏洞定位檢測方法,實現(xiàn)SQL注入漏洞的定位檢測。

本發(fā)明的目的可以通過以下技術(shù)方案實現(xiàn):

一種SQL注入漏洞定位檢測方法,包括以下步驟:

步驟S1,信息獲取模塊檢測網(wǎng)站地址的可訪性并獲取網(wǎng)頁源代碼并傳給模擬攻擊模塊;

步驟S2,模擬攻擊模塊在網(wǎng)頁中尋找如用戶登陸等方面的可能注入點,依次從攻擊字符串庫調(diào)用攻擊字符串對網(wǎng)站實施模擬攻擊,根據(jù)服務(wù)器端返回頁面檢測結(jié)果判斷是否攻擊成功,若成功則表示存在SQL注入漏洞,將網(wǎng)站位置及可能注入點保存,以便程序分析階段時使用;

步驟S3,源代碼載入器根據(jù)模擬攻擊模塊滲透測試的結(jié)果載入存在SQL注入漏洞的頁面源代碼,為后來的漏洞定位做準(zhǔn)備;

步驟S4,標(biāo)識模塊污染變量,為跟蹤數(shù)據(jù)流做準(zhǔn)備;

步驟S5,數(shù)據(jù)流跟蹤模塊運(yùn)用數(shù)據(jù)流跟蹤技術(shù)跟蹤污染變量在程序中的傳播,若最終組成SQL查詢語句的變量中有來自用戶輸入的數(shù)據(jù),則斷定該變量為SQL注入點,給出該變量輸入點的位置及其傳播路徑;

步驟S6,代碼插樁器在程序中插入信息以監(jiān)測程序的動態(tài)運(yùn)行,是為了收集程序的運(yùn)行時特征數(shù)據(jù),在被測程序的特定部位插入一段檢測程序,但不破壞被測程序的原有邏輯完整性,生成含探針的程序;其中,插入的探針是為了記錄變量傳播的路徑,在檢測到變量為引發(fā)SQL注入漏洞的注入點時,拋出其最先接受輸入的位置以及其在程序中的傳播路徑,方便日后對漏洞的修復(fù);

步驟S7,動態(tài)測試模塊通過輸入測試數(shù)據(jù),最終給出污染變量在程序中的傳播路徑,生成SQL注入點報告。

本發(fā)明的有益效果:本發(fā)明所提出一種SQL注入漏洞定位檢測方法,先通過滲透測試運(yùn)用模擬攻擊的方式來檢測WEB程序中是否有SQL注入漏洞,再運(yùn)用程序分析技術(shù)對源代碼進(jìn)行分析,運(yùn)用數(shù)據(jù)流跟蹤技術(shù)、插樁技術(shù)對污染變量的傳播進(jìn)行跟蹤,最終給出污染變量在程序中的傳播路徑,便于開發(fā)維護(hù)人員進(jìn)行漏洞的修補(bǔ),本發(fā)明提出了滲透測試與程序分析技術(shù)相結(jié)合的方法,解決了滲透測試無法分析源程序及純粹程序分析浪費時間的缺點,為SQL注入漏洞的定位檢測提供了一種新的思路。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。

圖1是本發(fā)明的系統(tǒng)示意圖。

圖2是本發(fā)明的方法流程圖。

具體實施方式

本發(fā)明的目的是提供一種SQL注入漏洞定位檢測方法,實現(xiàn)SQL注入漏洞的定位檢測。

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。

如圖1所示,本發(fā)明提供了一種SQL注入漏洞定位檢測系統(tǒng),包括滲透測試單元D110和程序分析單元D120。

所述的滲透測試單元D110包括信息獲取模塊M211、攻擊字符串庫DB1和模擬攻擊模塊M212;信息獲取模塊M211檢測URL可訪性并獲取網(wǎng)頁源代碼,在網(wǎng)頁中尋找如用戶登陸等方面的可能注入點,依次從攻擊字符串庫DB1調(diào)用攻擊字符串對網(wǎng)站實施模擬攻擊,根據(jù)服務(wù)器端返回頁面檢測結(jié)果判斷是否攻擊成功,若成功則表示存在SQL注入漏洞,將網(wǎng)站位置及可能注入點保存,以便程序分析階段時使用。

所述的程序分析單元D120包括源代碼載入器P1、標(biāo)識模塊M213、數(shù)據(jù)流跟蹤模塊M214、代碼插樁器P2和動態(tài)測試模塊M215;源代碼載入器P1根據(jù)滲透測試的結(jié)果載入存在SQL注入漏洞的頁面源代碼,為后來的漏洞定位做準(zhǔn)備;標(biāo)識模塊M213標(biāo)識污染變量,運(yùn)用數(shù)據(jù)流跟蹤技術(shù)跟蹤污染變量在程序中的傳播,若最終組成SQL查詢語句的變量中有來自用戶輸入的數(shù)據(jù),則斷定該變量為SQL注入點,給出該變量輸入點的位置及其傳播路徑;代碼插樁器P2在程序中插入信息以監(jiān)測程序的動態(tài)運(yùn)行,本發(fā)明中的插樁用于得到污染變量的傳播路徑。

如圖2所示,一種SQL注入漏洞定位檢測方法,包括以下步驟:

步驟S1,信息獲取模塊M211檢測網(wǎng)站地址U1的可訪性并獲取網(wǎng)頁源代碼,并傳給模擬攻擊模塊M212;

步驟S2,模擬攻擊模塊M212在網(wǎng)頁中尋找如用戶登陸等方面的可能注入點,依次從攻擊字符串庫DB1調(diào)用攻擊字符串對網(wǎng)站實施模擬攻擊,根據(jù)服務(wù)器端返回頁面檢測結(jié)果判斷是否攻擊成功,若成功則表示存在SQL注入漏洞,將網(wǎng)站位置及可能注入點保存,以便程序分析階段時使用;

步驟S3,源代碼載入器P1根據(jù)模擬攻擊模塊M212滲透測試的結(jié)果載入存在SQL注入漏洞的頁面源代碼,為后來的漏洞定位做準(zhǔn)備;

步驟S4,標(biāo)識模塊M213污染變量,為跟蹤數(shù)據(jù)流做準(zhǔn)備;

步驟S5,數(shù)據(jù)流跟蹤模塊M214運(yùn)用數(shù)據(jù)流跟蹤技術(shù)跟蹤污染變量在程序中的傳播,若最終組成SQL查詢語句的變量中有來自用戶輸入的數(shù)據(jù),則斷定該變量為SQL注入點,給出該變量輸入點的位置及其傳播路徑;

步驟S6,代碼插樁器P2在程序中插入信息以監(jiān)測程序的動態(tài)運(yùn)行,是為了收集程序的運(yùn)行時特征數(shù)據(jù),在被測程序的特定部位插入一段檢測程序(探針),但不破壞被測程序的原有邏輯完整性,生成含探針的程序P3;本發(fā)明中插入的探針是為了記錄變量傳播的路徑,在檢測到變量為引發(fā)SQL注入漏洞的注入點時,拋出其最先接受輸入的位置以及其在程序中的傳播路徑,方便日后對漏洞的修復(fù);

步驟S7,動態(tài)測試模塊M215通過輸入測試數(shù)據(jù),最終給出污染變量在程序中的傳播路徑,生成SQL注入點報告。

本發(fā)明所提出一種SQL注入漏洞定位檢測方法,先通過滲透測試運(yùn)用模擬攻擊的方式來檢測WEB程序中是否有SQL注入漏洞,再運(yùn)用程序分析技術(shù)對源代碼進(jìn)行分析,運(yùn)用數(shù)據(jù)流跟蹤技術(shù)、插樁技術(shù)對污染變量的傳播進(jìn)行跟蹤,最終給出污染變量在程序中的傳播路徑,便于開發(fā)維護(hù)人員進(jìn)行漏洞的修補(bǔ),本發(fā)明提出了滲透測試與程序分析技術(shù)相結(jié)合的方法,解決了滲透測試無法分析源程序及純粹程序分析浪費時間的缺點,為SQL注入漏洞的定位檢測提供了一種新的思路。

為了描述的方便,描述以上裝置時以功能分為各種單元、模塊分別描述。當(dāng)然,在實施本申請時可以把各單元、模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。

通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施方式或者實施方式的某些部分所述的方法。

以上所描述的裝置實施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施方式方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。

本申請可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如:個人計算機(jī)、服務(wù)器計算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機(jī)、大型計算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。

本申請可以在由計算機(jī)執(zhí)行的計算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計算機(jī)存儲介質(zhì)中。

在本說明書的描述中,參考術(shù)語“一個實施例”、“示例”、“具體示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。

以上內(nèi)容僅僅是對本發(fā)明結(jié)構(gòu)所作的舉例和說明,所屬本技術(shù)領(lǐng)域的技術(shù)人員對所描述的具體實施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,只要不偏離發(fā)明的結(jié)構(gòu)或者超越本權(quán)利要求書所定義的范圍,均應(yīng)屬于本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1