999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于sqlmap的被動SQL注入掃描技術研究與實現

2016-11-14 01:33:28李嘯胡勇
現代計算機 2016年28期
關鍵詞:用戶

李嘯,胡勇

(四川大學電子信息學院,成都610065)

基于sqlmap的被動SQL注入掃描技術研究與實現

李嘯,胡勇

(四川大學電子信息學院,成都610065)

在分析被動式SQL注入掃描的特點及優勢的基礎上,設計一種基于sqlmap實現的代理服務器式被動掃描方案。該方案能夠捕獲用戶瀏覽器發出的正常請求數據包,并自動對用戶提交的參數進行注入檢測。方案除了能夠掃描用戶請求中GET、POST、COOKIE方式顯性傳輸的參數之外,還能夠提取用戶數據包中的JSON、XML、偽靜態URL中的隱性參數進行提取并檢測,能夠完成更深度的注入掃描。

SQL注入;sqlmap;被動掃描

0 引言

隨著Web程序的廣泛應用,Web安全需求變得日趨增大。在Web十大安全威脅中,SQL注入威脅依然占有非常高的地位[1]。通常SQL注入的掃描有兩種方式,分為主動掃描[2]和被動掃描[3]。主動掃描通常利用爬蟲程序爬取網站的每個頁面,之后調用掃描程序對每個頁面提交的參數進行SQL注入掃描,主流的掃描工具有AWVS、IBM的AppScan等。這種掃描方法優點是快速,缺點是難以應對目前復雜的客戶端與服務器交互的環境,即掃描覆蓋面窄,許多掃描工作仍然需要在掃描過后由人工手動掃描驗證,特別是在掃描目標數量多的情況下,人員的工作量非常巨大。被動掃描的方式通常利用代理服務器監聽客戶端請求,解析客戶端發送的請求數據包的結構,對數據包中的參數自動進行SQL注入掃描,實現這種類型掃描的工具主要有Gourdscan、SQLi-Hunter、burpsuite的sqli插件等[4]。這種方法優點是能夠使得客戶端瀏覽網頁和掃描能夠同時進行,及時捕獲客戶端請求,免去了測試人員重復提交數據包檢測的環節,減少了人員工作量。本文利用代理服務器和sqlmap實現了SQL注入的被動掃描,不但能夠針對常規的GET,POST,COOKIE,和http-header這類參數的SQL注入掃描,還能夠識別并提取客戶端提交的數據包中的JSON,XML,偽靜態URL,對此類數據進行深度掃描。

1 SQL注入概述

SQL語言是 Access、MySQL、SQL Server、Oracle、IBM-DB2等數據庫的操作語言。通過構造SQL語句能夠對數據庫進行查詢、插入、刪除、修改等操作,對于權限大的數據庫,SQL語句還能夠用來執行系統命令。在例如asp、php、aspx、jsp等編寫的網頁程序中,通常會將用戶提交的參數與SQL語句結合實現對數據庫的操作,并將結果呈現給當前操作的用戶。這在方便用戶的同時,也造成了潛在的安全風險。以php語言處理為例,假設有如下代碼完成一個后臺管理員的登錄驗證過程:

$username=$_POST[‘username'];

$password=$_POST[‘password'];

$sql=”select*from admin where username='”.$username.”'and password='”.$password.”'”;

$con->exec($sql);

上述代碼可以看到,程序接收了用戶以POST方式提交給服務器的參數“username”和“password”,程序未驗證字符串的合法性便直接把它們的值代入SQL語句中處理。假如傳入的“username”的值為“admin'or‘1' ='1'/*”,“password”任意提交,那么代入$sql字符串變量后,$sql變成了 “select*from admin where username='admin'or‘1'='1'/*and password=任意”。“/*”是SQL語句的注釋符號,相當于數據庫執行了“select *from admin where username='admin'or‘1'='1'”操作,導致where后的語句為真,整條語句查詢到了結果,繞過了用戶名和口令正確性驗證。

由上述例子我們可以總結出,SQL注入是由于程序對用戶提交參數進行嚴格過濾,從而直接將惡意參數代入到SQL語句中,執行惡意查詢的過程。

SQL注入按照參數提交方式可以分為GET注入、POST注入、COOKIE注入、http-header注入四種形式。當前主流的SQL注入測試工具為sqlmap[5],該工具不僅能夠實現對上述四種注入方式的常規參數掃描檢測,而且能夠對HTTP數據包中用戶自定義標記的檢測點提交SQL注入掃描,工具漏報率和誤報率都非常低。下文將描述基于sqlmap的代理掃描工具設計。

2 基于sqlmap的被動SQL注入掃描工具設計

基于sqlmap被動掃描首先應了解sql注入被動掃描的流程。

相比于傳統的網頁爬取式的主動sql注入掃描過程,被動掃描的過程需要一個代理服務器被動監聽用戶正常瀏覽網頁的數據包,通過修改數據包中的參數值并重放數據包的形式達到掃描sql注入漏洞的目的。總流程如圖1所示。

圖1基于sqlmap的被動掃描過程

圖1中客戶端請求的URI(統一資源標識符)為“/ a.php?id=1”,其中“id”為提交參數。代理服務器有兩個作用,一個是將客戶請求原封不動提交給網站服務器,將網站服務器返回的結果再反饋給客戶端,即完成正常的代理請求。另一個是將客戶請求的數據包提交給sqlmap服務器。sqlmap服務器收到代理服務器提交的數據包后,開始解析http數據包,并進行sql注入掃描。

在實際過程中,可以將瀏覽網頁客戶端、代理服務器、sqlmap服務器部署在同一臺主機上。

(1)sqlmap服務器

sqlmap服務器是指sqlmap自身可以通過監聽端口,接受用戶HTTP訪問的形式建立服務器程序。sqlmap服務器專門供用戶調用自身提供的API[6],通過API來創建和執行掃描任務。在sqlmap文件包中,存在sqlmapapi.py文件,只需執行“sqlmap.py-s”即可創建sqlmap的API監聽服務,該服務監聽端口是8775。這樣即搭建起了sqlmap服務器。通過HTTP的方式訪問sqlmap所在的服務器IP和端口,即可返回數據。sqlmap的API接收以下幾種指令,如表1所示。

表1 sqlmap API接收指令列表

如果在本機開啟了sqlmap服務器并需要開始一個新的任務,則需要以HTTP方式請求“http://127.0.0.1:8775/task/new”,sqlmap服務器即創建了一個新的任務,并返回一個任務ID給瀏覽器。其他操作也同上述操作類似。

(2)代理服務器

前文敘述了代理服務器主要有兩個作用,一是正常代理用戶請求,另一個是向sqlmap服務器提交用戶請求的HTTP數據包。然而,在完成這兩項功能的同時,代理服務器還需要實時向用戶提供可視化的操作界面,用來查看掃描進度,提前結束掃描過程等。因此,綜合三項功能的代理服務器功能結構示意圖如圖2所示。

圖2代理服務器功能結構圖

圖2中代理服務器有三個模塊。接收數據/轉發模塊、與sqlmap API交互模塊、可視化界面模塊。

①接收數據/轉發模塊

接收數據/轉發模塊首先要接收用戶向網頁服務器提交的數據,然后提取HTTP請求部分的數據。之后分成兩個部分,一是作為中繼代理,繼續向服務器做出請求。二是將解析的HTTP請求數據提交給sqlmap API模塊。

②與sqlmap API交互模塊

該模塊負責接收轉發模塊提交的數據包,同時可以接收用戶指令,并向sqlmap的API發送任務指令和用戶瀏覽器請求數據包,實時操作sqlmap的掃描。在向API發送用戶瀏覽器請求數據包時,需要搞清用戶用戶數據包中的參數是以哪種方式提交的,從而判斷sqlmap是否能夠直接掃描。

●GET方式提交

GET型http請求數據包一般形式如下

GET/index.php?id=1 HTTP 1.1

user-agent:mozillia(Internet Explorer 8)

……

這種形式。這種方式傳入的參數為“?”之后的字符串,本例中為“id”。這種格式的數據包可整個發送給API,sqlmap能夠自動識別其中參數并掃描。

一個是肥料生產企業,積極擁抱互聯網和終端市場;一個是互聯網服務平臺,積極與廠家、農民實現上下游的銜接和對農民的技術指導與服務,使得產品、技術、服務進行有效結合,形成合力。這種合作模式,在我國當下的農村市場中極具生命力和活力。正如高祥照所言:“服務是農資行業永恒的主題。只不過隨著農業新形勢的發展,服務的內容和方式在發生變化。重新構架服務模式需要整個行業付出實踐和努力。”

●COOKIE方式提交

用戶瀏覽器客戶端發出的請求通常會帶有COOKIE。在HTTP數據包中的格式通常如下。

GET/index.php HTTP1.1

……

cookie:a=1&b=2

上例中COOKIE包含了兩個參數——“a”和“b”。這種數據包整個傳遞給API,sqlmap也可以自動掃描COOKIE中的參數。

●POST方式提交

POST數據通常是用戶填寫表單等操作提交的數據。鑒于POST提交的復雜性,可分為三種,一般形式,JSON(一種輕量級的數據交換格式)形式,XML形式。一般的HTTP數據包的POST數據格式如下。

……

a=1&b=2

上例中POST數據有“a”和“b”兩個參數及其數值。這種數據包直接提交給API自動掃描。

下面的例子是一個POST方式傳遞JSON的案例。

POST/index.php

……

j=[{b:1,c:2}]

本例中,POST數據包提交了參數“j”,但是j的值卻是一個JSON格式的字符串。參數j傳入服務器之后,服務器對j的值(JSON)解析,就解析出兩個參數,b=1,c=2,再對b,c兩個參數進行處理,跟原來的參數j并沒有太大關系。這種JSON格式的數據包直接傳入API之后,sqlmap并不會對JSON進行解析和掃描,而是只掃描參數j的值,不能達到檢測效果。因此,API交互模塊需要對JSON數據進行解析,并對解析后的參數值做sqlmap能夠識別的監測點標記,標記后重新組成JSON數據,將標記過的數據包提交給sqlmap的API。

同樣的,POST數據類型中含有XML格式的,也須將XMLl解析,將參數值做出標記后,然后將標記過的數據包傳遞給API。

在有些情況下,服務器會使用偽靜態URL。例如某URL為“http://xxx.com/1-1.html”,看似是請求了html文件,但是服務器后臺程序很可能將URL中的字符串“1-1”取出,作為參數傳入SQL查詢語句中。因此,需要利用正則表達式對URL中特定位置的字符串做出標記,提交API進行掃描檢測。

③可視化界面

可視化界面利用HTML和JavaScript實現,后臺調用php和MySQL程序處理用戶操作。用戶能夠看到界面中直觀的掃描數據,并向sqlmap API交互模塊提交用戶的操作指令。

(3)用戶瀏覽網頁

用戶瀏覽器通常可以設置代理服務器。用戶瀏覽器將代理服務器設置為圖1中的代理服務器的IP地址和端口,即可與代理服務器進行連接。連接之后只要用戶正常瀏覽網頁中的各類頁面,系統隨即利用sqlmap對用戶瀏覽提交的數據進行SQL注入掃描。

3 實驗結果

為了檢測本文實現的工具的掃描效果,本文的掃描工具與常用的被動SQL注入掃描工具進行了對比,分別檢測了20個存在不同類型注入漏洞網站頁面,其中有5個GET注入漏洞,3個COOKIE注入漏洞,6個POST注入漏洞,3個JSON/XML注入漏洞,5個偽靜態URL注入漏洞。表2展示了本文設計的工具掃描結果和其他工具掃描結果對比。

表2 工具掃描結果對比

通過對比實驗發現,文中的工具不但可以完整檢測出常規的GET、POST、COOKIE注入漏洞,而且可以彌補現有工具的缺陷,完成更深層次的SQL注入掃描。

4 結語

隨著SQL注入掃描的難度不斷增加,注入點和注入方式變得更加隱秘,傳統的主動掃描工具愈加難以發現SQL注入漏洞,因此,需要更精確的SQL注入掃描工具完成自動化測試。本文基于sqlmap的API調用與代理服務器結合的方式實現了SQL注入被動掃描工具,能夠較好地檢測出Web頁面中的SQL注入漏洞。但是,檢測過程中依然有一部分漏報,可見用戶提交的數據包形式是復雜多樣的,加上服務器安全防御程序的干擾,使得SQL注入檢測環境非常復雜。因此,下一步工作是要廣泛搜集數據包樣本和WAF繞過策略,從而更廣泛地獲取用戶提交參數特征,做更深入的掃描。

[1]OWASP T.Top 10-2013[J].The Ten Most Critical Web Application Security Risks,2013.

[2]尹虹.Web應用程序漏洞主動掃描器的研究與實現[D].國防科技大學,2005.

[3]邪惡十六進制.關于被動式掃描的碎碎念[EB/OL].http://www.evil0x.com/posts/12728.html?utm_source=tuicool&utm_medium=referral.

[4]陸由乙.sqli-proxy代理式SQLi注入檢測腳本[EB/OL].http://www.secye.com/news/ruanjiangengxinzixun/8415.html.

[5]Qi,W.A.N.G.,B.A.I.Miao.Research about User the Tool of SqlMap GET Injection and Principle Analysising on Linux Platform,2013:022.

[6]owasp.Automated Audit using SQLMap[EB/OL].https://www.owasp.org/index.php/Automated_Audit_using_SQLMap.

SQL Injection;sqlmap;Passive Scan

Research and Implement of Passive Scan of SQL Injection Based on sqlmap

LI Xiao,HU Yong
(College of Electronic Information,Sichuan University,Chengdu 610065)

By analyzing the features and advantages of passive scan on SQL injection,puts forward a passive scan program,which based on sqlmap while using a proxy server.The program is able to catch the normal request data packet sent by user agent,extract parameters from those packets and automatically test against each parameter for SQL injection.Besides extracting and testing SQL injection against those parameters which are apparent in GET/POST/COOKIE strings,the program can also extract parameters which are not apparent in the packet such as JSON/XMO and rewrite URL and test against them,which can scan SQL injection more deeply than others.

1007-1423(2016)28-0038-05

10.3969/j.issn.1007-1423.2016.28.011

李嘯(1990-),男,甘肅白銀人,碩士,研究方向為信息安全胡勇(1973-),男,四川成都人,副教授,研究方向為信息安全

2016-08-09

2016-09-26

猜你喜歡
用戶
雅閣國內用戶交付突破300萬輛
車主之友(2022年4期)2022-08-27 00:58:26
您撥打的用戶已戀愛,請稍后再哭
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年5期)2016-11-28 09:55:15
兩新黨建新媒體用戶與全網新媒體用戶之間有何差別
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
挖掘用戶需求尖端科技應用
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 国产欧美精品一区aⅴ影院| 视频在线观看一区二区| 91色综合综合热五月激情| 亚洲色图综合在线| 国产亚洲精品va在线| 亚洲欧美人成电影在线观看| 婷婷开心中文字幕| 亚洲无线观看| 亚洲看片网| 国产一级视频在线观看网站| 国产女人在线视频| 欧美成一级| 国产喷水视频| 国产JIZzJIzz视频全部免费| 欧美成人二区| 国产交换配偶在线视频| 熟妇无码人妻| 91午夜福利在线观看| 欧美日韩在线第一页| www欧美在线观看| 成人精品视频一区二区在线| 久久a级片| 亚洲一级毛片免费观看| 成人福利在线看| 无遮挡一级毛片呦女视频| 日韩欧美中文字幕在线精品| 国产拍在线| 丁香六月激情综合| 国产jizz| 国产成人综合日韩精品无码首页 | 国产杨幂丝袜av在线播放| 91亚洲国产视频| 久久久精品国产亚洲AV日韩| 日本黄色不卡视频| 亚洲人人视频| 久久久久久午夜精品| 国产亚洲高清在线精品99| 中文天堂在线视频| 综1合AV在线播放| 亚洲欧美人成电影在线观看| 国产人碰人摸人爱免费视频| 日韩无码白| 91精品亚洲| 亚洲美女视频一区| 色老二精品视频在线观看| 一级一毛片a级毛片| 国产毛片基地| 国产91av在线| 国产aⅴ无码专区亚洲av综合网 | 日韩麻豆小视频| 国产粉嫩粉嫩的18在线播放91| 99在线视频网站| 91精品在线视频观看| 亚洲国产91人成在线| 黄色三级网站免费| 欧美成a人片在线观看| 国产成人成人一区二区| 亚洲AV无码乱码在线观看代蜜桃| 青青草综合网| 国产一级毛片在线| 亚洲日韩Av中文字幕无码| 欧美在线一二区| 久久精品这里只有精99品| 日韩欧美中文字幕在线韩免费| 日韩一区二区三免费高清| 99手机在线视频| 88av在线| 国产青青操| 亚洲精品无码不卡在线播放| 欧美日本在线观看| 91精品综合| 91九色视频网| 午夜福利亚洲精品| 免费国产好深啊好涨好硬视频| 熟妇人妻无乱码中文字幕真矢织江 | 亚洲欧洲国产成人综合不卡| 免费高清自慰一区二区三区| 麻豆国产精品视频| 亚洲高清无码久久久| 成年A级毛片| 中文字幕首页系列人妻| 亚洲aaa视频|