[發明專利]SQL注入缺陷檢測方法、系統、設備及存儲介質有效
| 申請號: | 201811015751.5 | 申請日: | 2018-08-31 |
| 公開(公告)號: | CN109426722B | 公開(公告)日: | 2021-06-29 |
| 發明(設計)人: | 肖梟;時清凱;周金果;范剛 | 申請(專利權)人: | 深圳市源傘新科技有限公司 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06F21/57 |
| 代理公司: | 北京博思佳知識產權代理有限公司 11415 | 代理人: | 林祥 |
| 地址: | 518055 廣東省深圳市南山區西麗街道*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | sql 注入 缺陷 檢測 方法 系統 設備 存儲 介質 | ||
1.一種SQL注入缺陷檢測方法,其特征在于,所述方法包括如下步驟:
輸入待檢測的程序;所述程序為SQL語句,所述程序中包括用戶輸入語句和查詢語句;
以所述用戶輸入語句作為數據流的來源節點,以所述查詢語句作為數據流入的對象節點,生成待檢測的程序中各個函數的符號表達式圖,所述符號表達式圖包括節點和連接節點的邊,所述節點包括值節點和運算符節點,所述邊包括數據依賴性邊和控制依賴性邊,其中,所述數據依賴性邊是將節點連接到與其有直接數據依賴關系的值節點的有方向性的邊,所述控制依賴性邊是當存在限定變量的條件時將變量連接到條件的有方向性的邊;以及
檢測各個函數的符號表達式圖中是否存在從用戶輸入語句節點到查詢語句節點之間的路徑且路徑約束條件均滿足,如果是,則發現SQL注入缺陷;其中,所述檢測各個函數的符號表達式圖中是否存在從用戶輸入節點到查詢語句節點之間的路徑且路徑約束條件均滿足,包括如下步驟:
對于各個函數的符號表達式圖,從用戶輸入節點開始對所述符號表達式圖進行逆向的深度優先遍歷;
遍歷到達查詢語句節點時,根據所述控制依賴性邊查找用戶輸入節點到查詢語句節點之間的路徑約束條件,并判斷路徑約束條件是否均滿足,如果是,則發現SQL注入缺陷。
2.根據權利要求1所述的SQL注入缺陷檢測方法,其特征在于,所述方法還包括如下步驟:
生成各個函數的函數摘要,所述函數摘要包括符號摘要,所述符號摘要包括函數輸入、函數輸出以及函數輸入節點到函數輸出節點之間路徑的約束集。
3.根據權利要求2所述的SQL注入缺陷檢測方法,其特征在于,對于一函數的符號表達式圖,如果存在從用戶輸入節點到查詢語句節點的路徑,則該函數的函數摘要還包括輸入摘要、輸出摘要和傳遞摘要,其中:
所述輸入摘要包括函數輸入到查詢語句節點的摘要;
所述輸出摘要包括用戶輸入節點到函數輸出的摘要;
所述傳遞摘要包括函數輸入到用戶輸入節點的摘要。
4.根據權利要求2或3所述的SQL注入缺陷檢測方法,其特征在于,判斷路徑約束條件是否均滿足,包括如下步驟:
判斷當前檢測函數中從用戶輸入節點到查詢語句節點之間的路徑中是否存在被調函數;
如果是,則將所述被調函數的函數摘要嵌入當前檢測函數的符號表達式圖,判斷當前檢測函數中與該被調函數對應的路徑約束條件是否滿足。
5.根據權利要求4所述的SQL注入缺陷檢測方法,其特征在于,生成待檢測的程序中各個函數的符號表達式圖,包括如下步驟:
從所述待檢測的程序的底層函數依次向上層函數建立各個函數的符號表達式圖;
檢測各個函數的符號表達式圖時,從底層函數依次向上層函數檢測,并從底層函數依次向上層函數生成函數摘要;
檢測上層函數的符號表達式圖時,將該上層函數的下層函數的函數摘要嵌入該上層函數的符號表達式圖中。
6.根據權利要求3所述的SQL注入缺陷檢測方法,其特征在于,
所述輸入摘要包括函數輸入、函數輸入節點到查詢語句節點之間路徑的約束、分析結果報告、生成報告摘要的相應描述和檢查器特定信息;
所述輸出摘要包括用戶輸入、用戶輸入節點到函數輸出節點之間路徑的約束、分析結果報告、生成報告摘要的相應描述和檢查器特定信息;
所述傳遞摘要包括函數輸入、函數輸入節點到用戶輸入節點之間路徑的約束、分析結果報告、生成報告摘要的相應描述和檢查器特定信息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市源傘新科技有限公司,未經深圳市源傘新科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811015751.5/1.html,轉載請聲明來源鉆瓜專利網。





