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

Sqlmap在SQL注入漏洞檢測中的應(yīng)用

2023-04-29 00:00:00馮紅娟
計(jì)算機(jī)時(shí)代 2023年12期

摘" 要: 網(wǎng)絡(luò)安全工作日益受到重視,其中SQL注入漏洞檢測與修復(fù)是當(dāng)前網(wǎng)絡(luò)安全領(lǐng)域的一個(gè)重要研究方向。文章基于Sqlmap軟件對(duì)數(shù)據(jù)庫注入漏洞檢測展開研究,從Sqlmap安裝及使用角度進(jìn)行詳細(xì)分析,并提出SQL注入漏洞的防御及加固建議。

關(guān)鍵詞: Sqlmap軟件; SQL注入; 數(shù)據(jù)庫注入; 漏洞檢測; BurpSuite軟件

中圖分類號(hào):TP309" " " " " 文獻(xiàn)標(biāo)識(shí)碼:A" " "文章編號(hào):1006-8228(2023)12-194-04

Application of Sqlmap in SQL injection vulnerability detection

Feng Hongjuan

(National Library of China, Beijing 100081, China)

Abstract: Network security has been paid more and more attention, in which SQL injection vulnerability detection and repair is an important research direction. Based on Sqlmap software, the detection of database injection vulnerabilities is studied, the installation and use of Sqlmap are analyzed in detail, and suggestions for the defense and reinforcement of SQL injection vulnerabilities are" put forward.

Key words: Sqlmap software; SQL injection; database injection; vulnerability detection; BurpSuite software

0 引言

網(wǎng)絡(luò)系統(tǒng)漏洞及各類網(wǎng)絡(luò)安全問題極大地妨礙了信息系統(tǒng)的正常運(yùn)行,以致阻礙了人們通過網(wǎng)絡(luò)獲取服務(wù)的進(jìn)程,給計(jì)算機(jī)的使用帶來風(fēng)險(xiǎn)。建設(shè)有序、安全的網(wǎng)絡(luò)環(huán)境對(duì)研究者是一個(gè)實(shí)際的挑戰(zhàn)。

漏洞檢測是重要的網(wǎng)絡(luò)安全技術(shù),通過對(duì)信息系統(tǒng)的漏洞檢測,可及時(shí)掌握信息系統(tǒng)的漏洞和問題,在黑客攻擊之前做好加固和防范,這是主動(dòng)的防御措施,可有效提升信息系統(tǒng)的網(wǎng)絡(luò)安全性[1]。

SQL注入是一種將SQL代碼插入或添加到應(yīng)用(用戶)的輸入?yún)?shù)中的攻擊,之后再將這些參數(shù)傳遞給后臺(tái)的SQL服務(wù)器加以解析并執(zhí)行,凡是構(gòu)造SQL語句的步驟均存在被潛在攻擊的風(fēng)險(xiǎn)[2]。SQL注入漏洞常年占據(jù)各類漏洞排行榜前列。如果代碼和應(yīng)用程序存在SQL注入漏洞,攻擊者可通過SQL注入訪問后端數(shù)據(jù)庫內(nèi)容、遠(yuǎn)程執(zhí)行系統(tǒng)命令,在某些情況下甚至可以控制托管數(shù)據(jù)庫的服務(wù)器。根據(jù)注入點(diǎn)的不同,SQL注入可分為數(shù)字類型的注入、字符串類型的注入、搜索類型的注入等;根據(jù)提交方式的不同,SQL注入可分為GET型注入、POST型注入、COOKIE注入、HTTP頭注入等[3]。針對(duì)SQL注入安全漏洞的檢測和防御是網(wǎng)絡(luò)安全研究領(lǐng)域的熱點(diǎn)之一。目前常見的SQL注入漏洞檢測工具包含Sqlmap、The Mole、Pangolin、Sqlsus等軟件。

1 Sqlmap開源軟件介紹

Sqlmap軟件是一款自動(dòng)化的SQL注入漏洞檢測工具,可用于測試各種數(shù)據(jù)庫注入漏洞,甚至可利用SQL注入漏洞,獲取數(shù)據(jù)庫服務(wù)器權(quán)限。作為國內(nèi)外著名的滲透測試工具,其由Python寫成,具有開源且不斷更新的特點(diǎn),備受業(yè)界關(guān)注[4,5]。它支持MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird等30余種數(shù)據(jù)庫的檢測,支持枚舉用戶、密碼、哈希、權(quán)限、角色、數(shù)據(jù)庫、數(shù)據(jù)表和列。

Sqlmap軟件可安裝在Windows和Linux操作系統(tǒng)上。因?yàn)镾qlmap軟件基于Python環(huán)境研發(fā),所以第一步需安裝配置Python環(huán)境。第二步,下載并安裝Sqlmap。在Sqlmap官網(wǎng)https://sqlmap.org/,下載最新版Sqlmap安裝包,之后進(jìn)行解壓縮即完成安裝。本文選用Sqlmap1.7.3,并對(duì)基于Sqlmap軟件探測MySQL數(shù)據(jù)庫注入漏洞展開詳細(xì)研究。

2 利用Sqlmap軟件對(duì)SQL注入漏洞進(jìn)行檢測

2.1 GET型漏洞檢測[6]

2.1.1 指定測試目標(biāo)

使用Sqlmap軟件檢測GET型漏洞,實(shí)施SQL注入時(shí),首先需要指定測試目標(biāo),也就是檢測的鏈接。使用-u參數(shù)進(jìn)行檢測(u即URL的簡寫),示例:sqlmap.py -u URL地址

當(dāng)檢測目標(biāo)是多個(gè)網(wǎng)絡(luò)鏈接時(shí),可以將多個(gè)鏈接存儲(chǔ)在一個(gè)txt文件里,如test.txt,使用-m參數(shù)進(jìn)行檢測(m為multiple的簡寫),示例:sqlmap.py -m test.txt。

2.1.2 指定測試目標(biāo)的爬取深度

為收集更多的潛在的可能存在漏洞的鏈接,可以指定Sqlmap的檢測深度,使用參數(shù)--crawl。示例:Python.py -u URL地址 --crawl=5。

2.1.3 指定測試等級(jí)、測試風(fēng)險(xiǎn)

Sqlmap提供了level、risk參數(shù),用來在檢測過程中指定測試等級(jí)和測試風(fēng)險(xiǎn)。

其中,--level用于指定測試等級(jí),可選1-5,默認(rèn)為1。當(dāng)參數(shù)大于等于2時(shí),會(huì)檢測cookie,當(dāng)參數(shù)大于等于3時(shí),會(huì)檢測user-agent和referer;--risk用于指定測試風(fēng)險(xiǎn),可選0-3,默認(rèn)為1,會(huì)檢測大部分的測試語句,2會(huì)增加基于事件的測試語句;3會(huì)增加or語句進(jìn)行檢測。

2.1.4 指定SQL注入技術(shù)

Sqlmap支持六種SQL注入技術(shù),分別是:基于布爾類型的盲注(boolean-based blind,參數(shù)為B);基于時(shí)間的盲注(time-based blind,參數(shù)為T);基于報(bào)錯(cuò)的盲注(error-based,參數(shù)為E);聯(lián)合查詢注入(UNION query-based,參數(shù)為U);堆查詢注入(stacked queries,參數(shù)為S)及內(nèi)聯(lián)查詢注入(Inline queries,參數(shù)為Q)。若不指定注入技術(shù),Sqlmap實(shí)施注入時(shí)會(huì)依次使用以上技術(shù)。若對(duì)某系統(tǒng)比較熟悉,也可使用參數(shù)--technique,指定Sqlmap選用哪種注入方式進(jìn)行檢測,以加快檢測進(jìn)度。示例:sqlmap.py -u URL地址 --technique=B。

2.1.5 進(jìn)一步探測數(shù)據(jù)庫信息

對(duì)于未檢測到SQL注入漏洞的情況,Sqlmap軟件操作界面會(huì)給予提示“all tested parameters do not appear to be injectable”。如軟件檢測結(jié)果提示為“SQL injection vulnerability has already been detected against ‘**’ ”(**即為測試鏈接),則表明測試目標(biāo)已被探測到存在SQL注入漏洞,如圖1所示。

針對(duì)存在數(shù)據(jù)庫注入漏洞的目標(biāo),可進(jìn)一步探測數(shù)據(jù)庫的各類詳細(xì)信息[7],具體包括如下信息:

⑴ 查詢數(shù)據(jù)庫用戶,使用參數(shù)--users,示例:sqlmap.py -u URL地址 --users --crawl=3。

⑵ 查詢所有數(shù)據(jù)庫,使用參數(shù)--dbs,示例:sqlmap.py -u URL地址 --dbs --crawl=3。

⑶ 查詢數(shù)據(jù)庫用戶密碼的哈希值,使用參數(shù)--passwords,示例:sqlmap.py -u URL地址 --passwords --crawl=3,如圖2所示,依次枚舉用戶及密碼哈希值,查詢到該庫root密碼為弱口令。

⑷ 根據(jù)數(shù)據(jù)庫名,查詢數(shù)據(jù)庫表,使用參數(shù)--tables,示例:sqlmap.py -u URL地址 --tables -D 庫名 --crawl=3,如圖3所示,查詢到某庫下有5個(gè)表,依次枚舉5個(gè)數(shù)據(jù)表的名稱。

⑸ 根據(jù)數(shù)據(jù)庫名、表名,查詢所有列名,使用--columns,示例:sqlmap.py -u URL地址 --columns -T 表名 -D 庫名 --crawl=3。

⑹ 查詢某表所有列的內(nèi)容,使用--dump all columns,示例:sqlmap.py -u URL地址 --dump all columns -T 表名 -D 庫名 -crawl=3。

⑺ 查詢指定列的內(nèi)容,使--cump -C,示例:sqlmap.py -u URL地址 --dump -C 列名 -T 表名 -D 庫名 -crawl=3。

2.2 POST型漏洞檢測

SQL注入漏洞除了存在于GET請(qǐng)求中,有時(shí)還存在于POST請(qǐng)求中,稱為POST型漏洞。針對(duì)POST型漏洞,無法直接通過Sqlmap -u進(jìn)行探測,一般需結(jié)合BurpSuite軟件,通過BurpSuite抓包,查看請(qǐng)求、獲取日志文件,之后借助Sqlmap進(jìn)行SQL注入探測。

2.2.1 安裝JDK,安裝BurpSuite

BurpSuite軟件是一款Web應(yīng)用程序滲透測試集成平臺(tái),包含截包分析、暴力破解、修改包數(shù)據(jù)、掃描網(wǎng)站等功能[8-9]。BurpSuite軟件由Java語言編寫,運(yùn)行時(shí),依賴Java環(huán)境,它通過攔截HTTP、HTTPS協(xié)議的流量,以中間人的方式對(duì)客戶端情況、服務(wù)器端返回信息,進(jìn)行處理,以實(shí)現(xiàn)安全檢測的目的[10]。安裝BurpSuite軟件,首先需要安裝Java環(huán)境,之后安裝BurpSuite安裝包。

2.2.2 設(shè)置BurpSuite代理

正常情況使用瀏覽器訪問網(wǎng)站是直接訪問,如果需要對(duì)請(qǐng)求進(jìn)行攔截,則需將瀏覽器請(qǐng)求傳往BurpSuite,所以需要先設(shè)置BurpSuite代理[11-12]。將瀏覽器的代理服務(wù)器設(shè)置為BurpSuite,即默認(rèn)的127.0.0.1:8080。以火狐瀏覽器為例,首先下載安裝瀏覽器,之后下載安裝插件FoxyProxy Standard(下載地址:https://proxy-switchyomega.com/download/),新建情景模式,進(jìn)行插件配置并保存,之后啟用插件Proxy SwitchyOmega插件按鈕,選擇相應(yīng)情景模式。針對(duì)HTTPS鏈接,還需要下載安裝CA Certificate證書。

2.2.3 通過BurpSuite抓包,獲取日志文件

BurpSuite安裝成功并完成代理設(shè)置后,打開BurpSuite程序,在欄目“代理”(Proxy)下的“截?cái)唷保↖ntercept)頁面,選擇攔截請(qǐng)求(Intercept is on),之后對(duì)包含POST請(qǐng)求的網(wǎng)站頁面進(jìn)行操作,可在HTTP歷史記錄(HTTP history)下查看到相應(yīng)的POST請(qǐng)求日志,如圖4所示,可選中一項(xiàng)POST請(qǐng)求或者多項(xiàng)POST請(qǐng)求,點(diǎn)擊鼠標(biāo)右鍵進(jìn)行保存,如保存為test.txt日志文件,完成日志文件的獲取。

2.2.4 對(duì)日志文件通過sqlmap進(jìn)行檢測

Sqlmap提供了參數(shù)-r,用于對(duì)HTTP請(qǐng)求的日志文件進(jìn)行檢測,r是英文字母request(請(qǐng)求)的首字母。若請(qǐng)求是HTTPS,檢測時(shí)需要增加參數(shù)“--force-SSL”。

示例1:檢測test.txt日志文件。

sqlmap.py -r test.txt

示例2:使用快速模式檢測日志文件。

sqlmap.py -r test.txt --batch

示例3:檢測日志文件,選用測試等級(jí)為5進(jìn)行快速檢測(測試等級(jí)越高,檢測所需時(shí)間越長)。

sqlmap.py -r test.txt --level=5 --batch

3 SQL注入防御及安全加固策略

為有效應(yīng)對(duì)SQL注入攻擊帶來的網(wǎng)絡(luò)安全威脅,提升系統(tǒng)網(wǎng)站的安全性,建議從以下方面進(jìn)行考慮。

3.1 對(duì)網(wǎng)站特殊字符進(jìn)行過濾

將拼接參數(shù)修改成預(yù)編譯的方式,將SQL語句和用戶提供的輸入數(shù)據(jù)分開處理。針對(duì)服務(wù)器端腳本生成的客戶端頁面,提交的表單或發(fā)出的連接請(qǐng)求中包含的變量,必須進(jìn)行檢查[13],過濾其中包含的特殊字符,或?qū)ψ址M(jìn)行轉(zhuǎn)義處理。嚴(yán)格定義應(yīng)用程序可接受的數(shù)據(jù)類型(如:字符串、字母、數(shù)字、字符等),驗(yàn)證輸入中是否存在不正確的字符。采用這樣一種基本思路:使用肯定的定義而非否定的定義;不要向最終用戶顯示提供可用于策劃攻擊的信息(如表名);定義受允許的字符集。

3.2 加強(qiáng)對(duì)應(yīng)用數(shù)據(jù)庫的權(quán)限管理

通過對(duì)數(shù)據(jù)庫權(quán)限的細(xì)粒度管理,提升系統(tǒng)安全性,防范SQL注入攻擊。如:嚴(yán)禁使用DBA權(quán)限作為應(yīng)用所使用的鏈接賬戶,用戶角色應(yīng)遵循最小權(quán)限原則。應(yīng)用所使用的用戶關(guān)閉執(zhí)行系統(tǒng)命令、查詢系統(tǒng)表功能。當(dāng)前用戶權(quán)限完全控制在此應(yīng)用所使用的數(shù)據(jù)表范圍內(nèi)。

3.3 采用加密技術(shù)保護(hù)數(shù)據(jù)庫中的敏感數(shù)據(jù)

針對(duì)數(shù)據(jù)庫中存放的敏感數(shù)據(jù),可考慮使用功能強(qiáng)大的加密算法。如針對(duì)驗(yàn)證用戶身份的口令,不建議存儲(chǔ)數(shù)據(jù)本身,僅存儲(chǔ)數(shù)據(jù)哈希或其他算法加密后的數(shù)據(jù)。這樣攻擊者即使查看到存儲(chǔ)這些數(shù)據(jù)的表,也需要對(duì)口令哈希進(jìn)行破解,才能獲取真口令,增加攻擊者破解口令的難度,提升敏感數(shù)據(jù)的安全性。

3.4 定期對(duì)系統(tǒng)進(jìn)行漏洞檢測及安全加固

管理員可選用本文推薦的Sqlmap軟件或其他檢測工具對(duì)系統(tǒng)進(jìn)行滲透測試、漏洞檢測,分析網(wǎng)站存在的風(fēng)險(xiǎn)隱患,及時(shí)進(jìn)行漏洞修復(fù)、安全加固,加強(qiáng)對(duì)系統(tǒng)和數(shù)據(jù)庫日志的監(jiān)測,化被動(dòng)為主動(dòng),提升網(wǎng)絡(luò)安全主體意識(shí)和工作責(zé)任心,加強(qiáng)對(duì)信息系統(tǒng)的安全管理。

4 小結(jié)

SQL注入攻擊作為一種常見的Web攻擊方式,對(duì)各機(jī)構(gòu)的網(wǎng)站與信息系統(tǒng)安全工作提出極大挑戰(zhàn)。只有從SQL注入漏洞檢測、防御、安全加固等多方面采取切實(shí)有效措施,才能降低乃至消除SQL注入攻擊帶來的威脅,避免數(shù)據(jù)泄露、網(wǎng)頁篡改等網(wǎng)絡(luò)安全事件的發(fā)生,保障網(wǎng)站及信息系統(tǒng)的安全性和穩(wěn)定性。

參考文獻(xiàn)(References):

[1] 國家電網(wǎng)有限公司.常見網(wǎng)絡(luò)安全漏洞修復(fù)指南[M].北京:

中國電力出出版社,2018:1-16.

[2] [美]Justin Clarke著,施宏斌,葉愫譯.SQL 注入攻擊與防御[M].

北京:清華大學(xué)出版社,2010:5.

[3] 白鑫玉.SQL注入攻擊檢測技術(shù)研究[D].北京:北京交通

大學(xué),2021.

[4] sqlmap:automatic SQL injection and database takeover tool

[EB/OL].https://sqlmap.org/.2023-05-15.

[5] 陳小兵,趙春,姜海,等.sqlmap從入門到精通[M].北京:北京

大學(xué)出版社,2019:1-4,127-136.

[6] 朱振方,張鵬.從實(shí)踐中學(xué)習(xí)sqlmap數(shù)據(jù)庫注入測試[M].

北京:機(jī)械工業(yè)出版社,2022:20-46.

[7] 王琦,白淼.滲透工具SqlMap GET注入使用及原理分析[J].

計(jì)算機(jī)安全,2013(6):73-76.

[8] BurpSuite超詳細(xì)安裝教程[EB/OL].https://www.cnblogs.

com/jiguibu/p/16373385.html.2023-06-02

[9] 滲透利器—BurpSuite基本介紹[EB/OL]. https://blog.csdn.

net/da13122318861/article/details/107337229.2023-06-06.

[10] 網(wǎng)絡(luò)安全工具-BurpSuite[EB/OL].https://blog.csdn.net/

wislove/article/details/102548280.2023-06-06.

[11] BurpSuite-代理和瀏覽器設(shè)置[EB/OL].https://blog.csdn.

net/elmoyan/article/details/126852647.2023-06-06.

[12] BurpSuite配置代理[EB/OL].https://blog.csdn.net/

weixin_44657888/article/details/124673652.2023-06-06.

[13] sql注入攻擊的防范措施有哪些[EB/OL].https://www.

php.cn/faq/498667.html.2023-06-18.

主站蜘蛛池模板: 久久精品国产国语对白| 亚洲成a人片7777| 久久精品中文字幕少妇| h视频在线播放| 成年人免费国产视频| 老司国产精品视频91| 丰满人妻一区二区三区视频| 2021天堂在线亚洲精品专区| 国产真实乱了在线播放| 亚洲香蕉久久| 亚洲天堂免费在线视频| 精品人妻无码中字系列| 久久无码高潮喷水| 2021亚洲精品不卡a| 午夜无码一区二区三区| 欧美另类第一页| 亚洲精品无码日韩国产不卡| 91久久青青草原精品国产| 十八禁美女裸体网站| 婷婷色一二三区波多野衣| 最新加勒比隔壁人妻| 亚洲人妖在线| 999国产精品永久免费视频精品久久 | 91www在线观看| 日韩毛片免费| 精品福利网| 国产欧美视频一区二区三区| 国产97色在线| 国产a网站| 伊大人香蕉久久网欧美| 久久国产精品夜色| 超碰精品无码一区二区| 国产一区二区丝袜高跟鞋| 日本精品视频一区二区| 国产浮力第一页永久地址 | 扒开粉嫩的小缝隙喷白浆视频| 激情亚洲天堂| 国产成人三级| 日本在线国产| 美女被操91视频| 亚洲欧美一区二区三区蜜芽| 五月天天天色| 97久久精品人人| 另类重口100页在线播放| 国产乱人伦AV在线A| 波多野结衣的av一区二区三区| 人妻中文久热无码丝袜| 国产无码精品在线播放| 国产视频大全| 88av在线播放| 大学生久久香蕉国产线观看| 片在线无码观看| 婷婷色一二三区波多野衣| 精品欧美日韩国产日漫一区不卡| 激情视频综合网| 日本道中文字幕久久一区| 成人日韩精品| 亚洲欧美综合精品久久成人网| 久久永久免费人妻精品| 亚洲欧美色中文字幕| 999国内精品视频免费| 一级成人a毛片免费播放| 一级毛片高清| 成人一级免费视频| 亚洲人成网18禁| 亚洲黄色高清| 亚洲中文制服丝袜欧美精品| 亚洲国产天堂在线观看| 国产成人综合亚洲欧美在| 国产人成在线观看| 日韩在线视频网| 欧美日韩专区| 欧美五月婷婷| 欧美不卡二区| 免费国产一级 片内射老| 久久国产成人精品国产成人亚洲 | 2021天堂在线亚洲精品专区| 91免费片| 国产天天射| 成人午夜久久| 国产97视频在线| 国产精品区网红主播在线观看|