亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        精準SQL注入漏洞批量檢測技術(shù)研究

        2021-08-05 14:22:36薛念明張明巖謝吉倫
        山東電力技術(shù) 2021年7期
        關(guān)鍵詞:檢測

        邊 莉,薛念明,張明巖,謝吉倫,林 秀

        (山東魯能軟件技術(shù)有限公司,山東 濟南 250014)

        0 引言

        隨著計算機應用技術(shù)的發(fā)展和信息化建設的深入,WEB技術(shù)得到飛速發(fā)展。目前以WEB技術(shù)為主的應用系統(tǒng)發(fā)展規(guī)模越來越大,相應地,針對WEB應用漏洞所發(fā)起的攻擊在各類攻擊中占據(jù)的比重也越來越高,帶來了巨大的危害[1-3]。其中以結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)注入為主體的注入漏洞已位居WEB 安全漏洞的榜首,其危害程度和普遍程度都呈現(xiàn)上升的趨勢[4-8]。攻擊者可利用SQL 注入漏洞獲取系統(tǒng)管理權(quán)限、竊取機密資源和敏感數(shù)據(jù)或上傳木馬病毒等,帶來極其嚴重的潛在威脅[9-10]。因此,SQL 注入漏洞檢測與防護是保證WEB應用系統(tǒng)安全必不可少的一個重要因素。

        目前SQL 注入漏洞檢測技術(shù)分為自動化掃描和手工滲透兩種方式。自動化掃描工具主要由網(wǎng)絡爬蟲和滲透測試兩部分組成。首先利用網(wǎng)絡爬蟲搜索目標系統(tǒng)鏈接到服務器的統(tǒng)一資源定位符(Universal Resource Locator,URL)列表,然后對其進行滲透測試。該方式能夠快速檢測SQL 注入漏洞,但爬蟲所得測試數(shù)據(jù)的覆蓋率影響檢測能力。由于目前爬蟲技術(shù)的限制和不穩(wěn)定性,大部分掃描工具的誤報和漏報概率都比較大,檢測準確率較低[11-16]。手工分析需要測試者對當前系統(tǒng)有比較深入的了解,從中過濾出目標測試點,采取手工的方式逐條測試。雖然此種可以保證漏洞檢測的準確度,但對測試人員技術(shù)要求較高,且檢測過程需要消耗大量時間導致效率比較低下[17-20]。

        通過分析SQL 注入漏洞檢測技術(shù),可以得知SQL 注入具有非常復雜和多變的攻擊方式[21],而現(xiàn)有的檢測技術(shù)并不能很好地滿足應用程序的需求。基于此,提出一種精準SQL 注入漏洞批量檢測方案。通過此種方案可確保檢測的高效性和準確性,并能最大限度地降低漏測和誤報情況。

        1 SQL注入攻擊原理

        應用程序通過SQL 語句完成與數(shù)據(jù)庫服務器的交互。未對用戶輸入進行有效的驗證和過濾是SQL注入漏洞產(chǎn)生的主要原因,攻擊者通過控制應用程序發(fā)送給服務端的SQL 輸入,并將該輸入解析為執(zhí)行代碼,進而獲取較高的數(shù)據(jù)庫操作權(quán)限,實現(xiàn)對數(shù)據(jù)庫的任意操作,達到控制后臺服務器、獲取重要數(shù)據(jù)信息的目的[22-25]。

        圖1 顯示了普通用戶和SQL 注入攻擊者訪問同一個系統(tǒng)的對比。通過圖1 可方便理解SQL 注入原理。登錄時程序使用了Java 數(shù)據(jù)庫連接(Java Data Base Connectivity,JDBC)查詢,且開發(fā)人員使用了語句拼接的方式:select * from user where name=‘$username’and password=‘$password’。

        圖1 普通用戶和SQL注入攻擊者訪問系統(tǒng)

        對于普通用戶的輸入:$username=admin,$password=admin 此時執(zhí)行的SQL 語句為select *from user where name=‘a(chǎn)dmin’and password=‘a(chǎn)dmin’;服務端正常返回user 表中用戶名為admin,密碼為admin的用戶信息。

        對于攻擊者的輸入:$username=admin’--,$password=123 此時程序執(zhí)行的SQL 語句變?yōu)閟elect* from user where name=‘a(chǎn)dmin’--’and password=‘123’;由于用戶名中的單引號與SQL 語句中前半部分的單引號相匹配,且SQL 后半部分內(nèi)容因“--”進行了注釋,其結(jié)果就是只根據(jù)用戶名就能查出user 表中admin 用戶的所有信息。若數(shù)據(jù)庫中的密碼是用明文顯示的,則可直接查出該用戶的密碼,攻擊者就可以用該用戶的賬號進行進一步的操作。

        2 精準SQL注入漏洞批量檢測方案

        針對WEB 應用程序特點,提出了一種精準SQL注入漏洞批量檢測方案。該方案集數(shù)據(jù)定制化收集和批量自動執(zhí)行于一體,充分結(jié)合自動化掃描和人工滲透分析的優(yōu)點,可兼顧檢測效率和準確性,并且可以減少漏測和誤報情況的發(fā)生。

        2.1 精準SQL漏洞批量檢測架構(gòu)設計

        精準SQL 注入漏洞檢測能夠有效地快速識別被測系統(tǒng)中的SQL 注入漏洞,同時結(jié)合響應分析設計,可依據(jù)測試過程數(shù)據(jù)精準定位注入點。相應的架構(gòu)設計方案如圖2所示。

        圖2 批量SQL注入漏洞檢測架構(gòu)

        1)請求采集與存儲。通過二次開發(fā)的代理工具對瀏覽器進行監(jiān)聽,實現(xiàn)對請求數(shù)據(jù)的精準采集并自動本地存儲。

        2)批量執(zhí)行漏洞檢測。集成SQLMAP 漏洞檢測工具,SQL 注入檢測規(guī)則定制模塊自定義導入payload,調(diào)用SQL 注入批量檢測執(zhí)行模塊和測試結(jié)果數(shù)據(jù)存儲模塊,完成批量漏洞檢測執(zhí)行,并對響應數(shù)據(jù)進行記錄和存儲。

        這時,餐廳的大門突然打開,整個屋里瞬間鴉雀無聲。我回過頭去看,一個年輕人走了進來,周圍一片死寂,連一根針掉到地上都能聽到。他臉上到處都是穿孔,多到數(shù)不過來,一頭長發(fā)又黑又油膩。但讓他看起來很有威脅的還不是這些,而是他掃視一切時的那種冷酷眼神。

        3)結(jié)果分析。通過關(guān)鍵字掃描,對測試結(jié)果進行分析,定位存在SQL 注入漏洞的目標數(shù)據(jù)請求位置。

        依此綜合實現(xiàn)SQL 注入漏洞的分析、核查、注入等功能。該SQL 注入漏洞檢測模型具有實現(xiàn)代價小、運行效率高,并且誤報率低的優(yōu)勢,可有效提升SQL注入漏洞的檢測能力。

        2.2 請求采集與存儲

        該過程的關(guān)鍵在于通過對代理工具Fiddler進行二次開發(fā)以高效準確地記錄待測請求數(shù)據(jù)。

        Fiddler 是一款HTTP 協(xié)議調(diào)試代理工具,它可以監(jiān)視和記錄客戶端和服務器之間的所有通信數(shù)據(jù)和請求信息。Fiddler 的代理功能是實現(xiàn)批量漏洞檢測的前提條件,測試者只需要通過前端訪問WEB 應用程序的各個輸入點,F(xiàn)iddler 便可通過監(jiān)聽準確收集和記錄測試請求數(shù)據(jù),為后續(xù)批量滲透檢測提供數(shù)據(jù)輸入,具體操作步驟及原理如圖3所示。

        圖3 采用Fiddler代理工具進行請求數(shù)據(jù)采集與本地存儲的原理

        1)對Fiddler 代理工具進行二次開發(fā),修改Fiddler Script Editor 文件,添加命令行save 指令代碼:實現(xiàn)格式化數(shù)據(jù)請求文件保存類型,設置本地存放路徑以及對目標請求數(shù)據(jù)的一鍵保存功能。

        2)調(diào)試開發(fā)完成后,打開Fiddler 對瀏覽器進行監(jiān)聽,用戶可根據(jù)業(yè)務需求自定義Fiddler 過濾器規(guī)則(包括域名過濾、請求類型過濾及其相應狀態(tài)過濾)監(jiān)聽目標請求數(shù)據(jù)。

        3)手工瀏覽測試站點,此時Fiddler 會自動記錄根據(jù)步驟2)規(guī)則過濾后的所有客戶端與服務器通信的HTTP/HTTPS請求。

        4)確保遍歷應用程序的每項功能后,根據(jù)步驟1)的命令行指令save,導出Fiddler 記錄的所有目標請求數(shù)據(jù)。

        使用二次開發(fā)后的Fiddler的代理功能是測試流程的關(guān)鍵步驟,記錄并保存的數(shù)據(jù)請求皆為目標站點請求,有效提高了測試準確率;目的請求數(shù)據(jù)按照特定文件格式保存,為滲透工具提供數(shù)據(jù)輸入,有效提高了測試效率。此種方法可以很好地彌補自動化掃描工具在測試數(shù)據(jù)收集方面的缺點。

        2.3 批量執(zhí)行漏洞檢測

        由Fiddler 獲取的請求數(shù)據(jù),通過有效性檢查后連接SQLMAP 批處理檢測程序,完成檢測規(guī)則和配置文件的定義和配置后,由檢測程序向目標請求數(shù)據(jù)進行SQL注入滲透檢測。

        1)數(shù)據(jù)有效性檢查。從Fiddler 中收集到的每一個數(shù)據(jù)包都包含一個完整的請求過程,若應用程序是需要登錄才能訪問的,則應在滲透測試開始前檢查請求中的會話信息是否有效,否則應將有效的會話信息替換到每個請求文件中,如圖4所示。

        圖4 數(shù)據(jù)有效性控制和SQLMAP集成與批處理

        2)SQLMAP集成與批量檢測。首先集成SQLMAP開源檢測工具,通過調(diào)用SQLMAP 檢測庫中的既有掃描規(guī)則和自定義payload 進行檢測規(guī)則定制。然后在配置文件中對請求執(zhí)行路徑以及相關(guān)數(shù)據(jù)庫信息進行配置,根據(jù)配置信息啟動批量檢測程序從而實現(xiàn)對目標數(shù)據(jù)請求的批量SQL 注入檢測。為了提高執(zhí)行效率,該過程采用了多進程并發(fā)模式進行批量滲透執(zhí)行,充分利用系統(tǒng)資源,提高了程序的執(zhí)行速度,如圖4所示。

        同時SQL 注入批量檢測執(zhí)行過程中產(chǎn)生的中間數(shù)據(jù)會自動保存在本地,每個數(shù)據(jù)請求文件對應一個檢測結(jié)果文件,且有唯一編號標識。例如1_Request.txt 數(shù)據(jù)請求文件對應檢測結(jié)果文件為1_Request.txt-------Result.txt。

        2.4 檢測結(jié)果分析

        結(jié)果分析模塊對SQL 注入批量檢測結(jié)果進行關(guān)鍵字掃描,確定存在SQL 注入漏洞的檢測結(jié)果文件,并根據(jù)編號標識定位到對應的數(shù)據(jù)請求文件,從而快速定位到存在漏洞的系統(tǒng)URL 地址,如圖5 所示。定位到注入點后可做一步滲透攻擊,從而可獲取數(shù)據(jù)庫表結(jié)構(gòu)和表數(shù)據(jù)等。根據(jù)測試結(jié)果給出系統(tǒng)加固修復建議。

        圖5 結(jié)果分析與漏洞定位模塊操作原理

        3 可行性驗證及結(jié)果比對

        為了證實新型SQL 注入測試方案的可行性,在內(nèi)網(wǎng)搭建測試環(huán)境部署3個不同復雜度的WEB應用信息系統(tǒng),分別使用精準SQL 注入漏洞批量檢測方案、自動化掃描工具APPSCAN 和手工滲透3 種方案對3 個WEB 應用信息系統(tǒng)進行測試。其中,精準SQL 注入漏洞批量檢測方案對項目2 測試執(zhí)行過程如圖6所示。

        圖6 精準SQL注入批量檢測方案執(zhí)行過程

        1)使用二次開發(fā)的Fiddler 作為代理工具,收集并格式化保存目標請求數(shù)據(jù);

        2)配置XML文件,集成SQLMAP工具;

        3)實現(xiàn)批處理,對有效的目標請求文件執(zhí)行批量SQL注入檢測;

        4)結(jié)果分析和SQL注入點定位。

        對測試結(jié)果進行統(tǒng)計分析,得到3種方案的SQL注入檢測準確率和執(zhí)行效率對比結(jié)果。其中檢測準確率是指檢測SQL 注入漏洞數(shù)量與實際SQL 注入漏洞數(shù)量的比值。執(zhí)行時間是一次全量應用系統(tǒng)SQL注入漏洞檢測所耗費的時間。對比結(jié)果如表1 和表2所示。

        表1 3種方案漏洞檢測準確率 單位:%

        表2 3種方案漏洞檢測執(zhí)行時間 單位:min

        由測試結(jié)果可知,精準SQL 注入漏洞批量檢測方案可快速檢測到WEB 應用程序的SQL 注入漏洞;自動化工具因受爬蟲技術(shù)限制,并不能準確定位漏洞的注入點,誤報和漏測率很高;而手工測試在一般的項目測試中,因耗時太長一般不予以使用。

        由此得出基于代理模式的SQL 注入檢測方法不僅極大地提高了檢測效率,更能提高檢測準確率,保證測試質(zhì)量。

        4 結(jié)語

        由于現(xiàn)有的自動化掃描工具受限于檢測模式單一、爬蟲數(shù)據(jù)收集不穩(wěn)定等因素的影響,漏測和誤報現(xiàn)象較為嚴重。基于此,提出一種精準SQL 注入批量漏洞檢測方案。此方案一方面能保證待測數(shù)據(jù)的穩(wěn)定性和全面性,減少對數(shù)據(jù)輸入點的漏測現(xiàn)象;另一方面,借助FIDDLER 監(jiān)聽技術(shù),準確收集和記錄測試請求數(shù)據(jù),為后續(xù)批量滲透檢測提供數(shù)據(jù)輸入,確保了漏洞檢測的高效性。

        SQL注入是WEB應用程序威脅最大的安全漏洞之一,應當結(jié)合系統(tǒng)業(yè)務特點和安全事件,進一步優(yōu)化安全檢測技術(shù),這對于促進WEB 應用安全質(zhì)量在各個行業(yè)的推廣,具有積極作用和戰(zhàn)略意義。同時應不斷深入學習漏洞檢測技術(shù),科學結(jié)合現(xiàn)有工具并實現(xiàn)優(yōu)勢互補,適應信息安全的動態(tài)發(fā)展趨勢。

        猜你喜歡
        檢測
        QC 檢測
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        “幾何圖形”檢測題
        “角”檢測題
        “有理數(shù)的乘除法”檢測題
        “有理數(shù)”檢測題
        “角”檢測題
        “幾何圖形”檢測題
        国产免费网站在线观看不卡| 人妻无码中文人妻有码| 欧美精品aaa久久久影院| 久久精品日韩免费视频| 中文字幕日韩人妻少妇毛片| 亚洲国产精华液网站w| 亚洲国产精品一区二区久| 免费国产在线精品三区| 一二三区亚洲av偷拍| 亚洲欧美乱综合图片区小说区| 无遮挡1000部拍拍拍免费| 国产精品毛片久久久久久久| 白浆出来无码视频在线| 日本高清无卡一区二区三区| 久久久久久人妻无码| 亚洲乱亚洲乱少妇无码99p| 日本理论片一区二区三区| 亚洲av综合日韩精品久久| 亚洲一区二区三区四区五区黄| 亚洲日本va午夜在线电影| 亚洲无码vr| 日本在线一区二区三区四区 | av潮喷大喷水系列无码| 国产亚洲精品自在久久77| 亚洲97成人精品久久久| 又大又粗欧美黑人aaaaa片| 无码国产激情在线观看| 亚洲啪啪AⅤ一区二区三区| 国产一区二区三区视频地址| 野花社区视频在线观看| 精品亚洲国产探花在线播放| 国产一区二区美女主播| 涩涩鲁精品亚洲一区二区| 爱性久久久久久久久| 四虎精品免费永久在线| 手机免费在线观看日韩av| 天天做天天添av国产亚洲| 日本少妇人妻xxxxx18| 精品中文字幕手机在线| 国产午夜在线视频观看| 丰满熟妇乱又伦|