• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2021-08-05 14:22:36薛念明張明巖謝吉倫
      山東電力技術(shù) 2021年7期
      關(guān)鍵詞:批量漏洞應(yīng)用程序

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

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

      0 引言

      隨著計算機應(yīng)用技術(shù)的發(fā)展和信息化建設(shè)的深入,WEB技術(shù)得到飛速發(fā)展。目前以WEB技術(shù)為主的應(yīng)用系統(tǒng)發(fā)展規(guī)模越來越大,相應(yīng)地,針對WEB應(yīng)用漏洞所發(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應(yīng)用系統(tǒng)安全必不可少的一個重要因素。

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

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

      1 SQL注入攻擊原理

      應(yīng)用程序通過SQL 語句完成與數(shù)據(jù)庫服務(wù)器的交互。未對用戶輸入進行有效的驗證和過濾是SQL注入漏洞產(chǎn)生的主要原因,攻擊者通過控制應(yīng)用程序發(fā)送給服務(wù)端的SQL 輸入,并將該輸入解析為執(zhí)行代碼,進而獲取較高的數(shù)據(jù)庫操作權(quán)限,實現(xiàn)對數(shù)據(jù)庫的任意操作,達到控制后臺服務(wù)器、獲取重要數(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’;服務(wù)端正常返回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 應(yīng)用程序特點,提出了一種精準SQL注入漏洞批量檢測方案。該方案集數(shù)據(jù)定制化收集和批量自動執(zhí)行于一體,充分結(jié)合自動化掃描和人工滲透分析的優(yōu)點,可兼顧檢測效率和準確性,并且可以減少漏測和誤報情況的發(fā)生。

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

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

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

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

      2)批量執(zhí)行漏洞檢測。集成SQLMAP 漏洞檢測工具,SQL 注入檢測規(guī)則定制模塊自定義導(dǎo)入payload,調(diào)用SQL 注入批量檢測執(zhí)行模塊和測試結(jié)果數(shù)據(jù)存儲模塊,完成批量漏洞檢測執(zhí)行,并對響應(yīng)數(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)視和記錄客戶端和服務(wù)器之間的所有通信數(shù)據(jù)和請求信息。Fiddler 的代理功能是實現(xiàn)批量漏洞檢測的前提條件,測試者只需要通過前端訪問WEB 應(yīng)用程序的各個輸入點,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è)置本地存放路徑以及對目標請求數(shù)據(jù)的一鍵保存功能。

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

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

      4)確保遍歷應(yīng)用程序的每項功能后,根據(jù)步驟1)的命令行指令save,導(dǎo)出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ù)包都包含一個完整的請求過程,若應(yīng)用程序是需要登錄才能訪問的,則應(yīng)在滲透測試開始前檢查請求中的會話信息是否有效,否則應(yīng)將有效的會話信息替換到每個請求文件中,如圖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ù)請求文件對應(yīng)一個檢測結(jié)果文件,且有唯一編號標識。例如1_Request.txt 數(shù)據(jù)請求文件對應(yīng)檢測結(jié)果文件為1_Request.txt-------Result.txt。

      2.4 檢測結(jié)果分析

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

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

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

      為了證實新型SQL 注入測試方案的可行性,在內(nèi)網(wǎng)搭建測試環(huán)境部署3個不同復(fù)雜度的WEB應(yīng)用信息系統(tǒng),分別使用精準SQL 注入漏洞批量檢測方案、自動化掃描工具APPSCAN 和手工滲透3 種方案對3 個WEB 應(yīng)用信息系統(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í)行時間是一次全量應(yīng)用系統(tǒng)SQL注入漏洞檢測所耗費的時間。對比結(jié)果如表1 和表2所示。

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

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

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

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

      4 結(jié)語

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

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

      猜你喜歡
      批量漏洞應(yīng)用程序
      漏洞
      批量提交在配置分發(fā)中的應(yīng)用
      刪除Win10中自帶的應(yīng)用程序
      電腦報(2019年12期)2019-09-10 05:08:20
      三明:“兩票制”堵住加價漏洞
      漏洞在哪兒
      兒童時代(2016年6期)2016-09-14 04:54:43
      高鐵急救應(yīng)補齊三漏洞
      淺議高校網(wǎng)銀批量代發(fā)
      基于AUTOIT3和VBA的POWERPOINT操作題自動批量批改
      考慮價差和再制造率的制造/再制造混合系統(tǒng)生產(chǎn)批量研究
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      临西县| 衢州市| 清远市| 伊吾县| 西乌珠穆沁旗| 固阳县| 乳源| 沙雅县| 百色市| 陇西县| 太保市| 阳朔县| 海南省| 深水埗区| 田阳县| 武隆县| 绍兴县| 灵台县| 正定县| 吉林市| 谷城县| 巧家县| 织金县| 大方县| 舞阳县| 临颍县| 永寿县| 长治县| 昌吉市| 南澳县| 乌兰察布市| 和硕县| 衡东县| 江口县| 宁波市| 长葛市| 东丽区| 鸡西市| 九龙县| 唐河县| 康定县|