<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

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

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

本發明屬于計算機技術領域,特別涉及信息安全領域,特別是涉及一種SQL注入漏洞定位檢測方法。



背景技術:

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

本發明提出一種利用滲透測試與程序分析技術相結合的方法來實現對SQL注入漏洞的定位。滲透測試階段輸入網站地址,通過模擬攻擊確定引起SQL注入的用戶輸入點,程序分析階段根據滲透測試階段的結果,在WEB應用系統源代碼中通過數據流跟蹤技術對漏洞產生過程進行分析。



技術實現要素:

本發明的目的是提供一種SQL注入漏洞定位檢測方法,實現SQL注入漏洞的定位檢測。

本發明的目的可以通過以下技術方案實現:

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

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

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

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

步驟S4,標識模塊污染變量,為跟蹤數據流做準備;

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

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

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

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

附圖說明

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

圖1是本發明的系統示意圖。

圖2是本發明的方法流程圖。

具體實施方式

本發明的目的是提供一種SQL注入漏洞定位檢測方法,實現SQL注入漏洞的定位檢測。

為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。

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

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

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

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

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

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

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

步驟S4,標識模塊M213污染變量,為跟蹤數據流做準備;

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

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

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

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

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

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

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

本申請可用于眾多通用或專用的計算系統環境或配置中。例如:個人計算機、服務器計算機、手持設備或便攜式設備、平板型設備、多處理器系統、基于微處理器的系統、置頂盒、可編程的消費電子設備、網絡PC、小型計算機、大型計算機、包括以上任何系統或設備的分布式計算環境等等。

本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環境中實踐本申請,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位于包括存儲設備在內的本地和遠程計算機存儲介質中。

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

以上內容僅僅是對本發明結構所作的舉例和說明,所屬本技術領域的技術人員對所描述的具體實施例做各種各樣的修改或補充或采用類似的方式替代,只要不偏離發明的結構或者超越本權利要求書所定義的范圍,均應屬于本發明的保護范圍。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影