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

Sqlmap在SQL注入漏洞檢測中的應用

2023-04-29 00:00:00馮紅娟
計算機時代 2023年12期

摘" 要: 網絡安全工作日益受到重視,其中SQL注入漏洞檢測與修復是當前網絡安全領域的一個重要研究方向。文章基于Sqlmap軟件對數據庫注入漏洞檢測展開研究,從Sqlmap安裝及使用角度進行詳細分析,并提出SQL注入漏洞的防御及加固建議。

關鍵詞: Sqlmap軟件; SQL注入; 數據庫注入; 漏洞檢測; BurpSuite軟件

中圖分類號:TP309" " " " " 文獻標識碼:A" " "文章編號: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 引言

網絡系統漏洞及各類網絡安全問題極大地妨礙了信息系統的正常運行,以致阻礙了人們通過網絡獲取服務的進程,給計算機的使用帶來風險。建設有序、安全的網絡環境對研究者是一個實際的挑戰。

漏洞檢測是重要的網絡安全技術,通過對信息系統的漏洞檢測,可及時掌握信息系統的漏洞和問題,在黑客攻擊之前做好加固和防范,這是主動的防御措施,可有效提升信息系統的網絡安全性[1]。

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

1 Sqlmap開源軟件介紹

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

Sqlmap軟件可安裝在Windows和Linux操作系統上。因為Sqlmap軟件基于Python環境研發,所以第一步需安裝配置Python環境。第二步,下載并安裝Sqlmap。在Sqlmap官網https://sqlmap.org/,下載最新版Sqlmap安裝包,之后進行解壓縮即完成安裝。本文選用Sqlmap1.7.3,并對基于Sqlmap軟件探測MySQL數據庫注入漏洞展開詳細研究。

2 利用Sqlmap軟件對SQL注入漏洞進行檢測

2.1 GET型漏洞檢測[6]

2.1.1 指定測試目標

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

當檢測目標是多個網絡鏈接時,可以將多個鏈接存儲在一個txt文件里,如test.txt,使用-m參數進行檢測(m為multiple的簡寫),示例:sqlmap.py -m test.txt。

2.1.2 指定測試目標的爬取深度

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

2.1.3 指定測試等級、測試風險

Sqlmap提供了level、risk參數,用來在檢測過程中指定測試等級和測試風險。

其中,--level用于指定測試等級,可選1-5,默認為1。當參數大于等于2時,會檢測cookie,當參數大于等于3時,會檢測user-agent和referer;--risk用于指定測試風險,可選0-3,默認為1,會檢測大部分的測試語句,2會增加基于事件的測試語句;3會增加or語句進行檢測。

2.1.4 指定SQL注入技術

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

2.1.5 進一步探測數據庫信息

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

針對存在數據庫注入漏洞的目標,可進一步探測數據庫的各類詳細信息[7],具體包括如下信息:

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

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

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

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

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

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

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

2.2 POST型漏洞檢測

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

2.2.1 安裝JDK,安裝BurpSuite

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

2.2.2 設置BurpSuite代理

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

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

BurpSuite安裝成功并完成代理設置后,打開BurpSuite程序,在欄目“代理”(Proxy)下的“截斷”(Intercept)頁面,選擇攔截請求(Intercept is on),之后對包含POST請求的網站頁面進行操作,可在HTTP歷史記錄(HTTP history)下查看到相應的POST請求日志,如圖4所示,可選中一項POST請求或者多項POST請求,點擊鼠標右鍵進行保存,如保存為test.txt日志文件,完成日志文件的獲取。

2.2.4 對日志文件通過sqlmap進行檢測

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

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

sqlmap.py -r test.txt

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

sqlmap.py -r test.txt --batch

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

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

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

為有效應對SQL注入攻擊帶來的網絡安全威脅,提升系統網站的安全性,建議從以下方面進行考慮。

3.1 對網站特殊字符進行過濾

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

3.2 加強對應用數據庫的權限管理

通過對數據庫權限的細粒度管理,提升系統安全性,防范SQL注入攻擊。如:嚴禁使用DBA權限作為應用所使用的鏈接賬戶,用戶角色應遵循最小權限原則。應用所使用的用戶關閉執行系統命令、查詢系統表功能。當前用戶權限完全控制在此應用所使用的數據表范圍內。

3.3 采用加密技術保護數據庫中的敏感數據

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

3.4 定期對系統進行漏洞檢測及安全加固

管理員可選用本文推薦的Sqlmap軟件或其他檢測工具對系統進行滲透測試、漏洞檢測,分析網站存在的風險隱患,及時進行漏洞修復、安全加固,加強對系統和數據庫日志的監測,化被動為主動,提升網絡安全主體意識和工作責任心,加強對信息系統的安全管理。

4 小結

SQL注入攻擊作為一種常見的Web攻擊方式,對各機構的網站與信息系統安全工作提出極大挑戰。只有從SQL注入漏洞檢測、防御、安全加固等多方面采取切實有效措施,才能降低乃至消除SQL注入攻擊帶來的威脅,避免數據泄露、網頁篡改等網絡安全事件的發生,保障網站及信息系統的安全性和穩定性。

參考文獻(References):

[1] 國家電網有限公司.常見網絡安全漏洞修復指南[M].北京:

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

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

北京:清華大學出版社,2010:5.

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

大學,2021.

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

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

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

大學出版社,2019:1-4,127-136.

[6] 朱振方,張鵬.從實踐中學習sqlmap數據庫注入測試[M].

北京:機械工業出版社,2022:20-46.

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

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

[8] BurpSuite超詳細安裝教程[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] 網絡安全工具-BurpSuite[EB/OL].https://blog.csdn.net/

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

[11] BurpSuite-代理和瀏覽器設置[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.

主站蜘蛛池模板: 亚洲一区无码在线| 黑人巨大精品欧美一区二区区| Jizz国产色系免费| 日韩国产综合精选| 日韩av在线直播| 欧美日韩一区二区在线免费观看| 欧美一区二区福利视频| 日韩欧美综合在线制服| 欧美成人手机在线观看网址| 成人字幕网视频在线观看| 国产成人狂喷潮在线观看2345| 国产一在线| 日韩精品无码不卡无码| 国产丝袜丝视频在线观看| 日韩在线视频网站| 亚洲Av激情网五月天| 欧美高清视频一区二区三区| 香蕉视频在线精品| 2021国产精品自产拍在线| 久久久四虎成人永久免费网站| 午夜视频日本| 福利在线不卡一区| 成人在线欧美| 亚洲AV无码精品无码久久蜜桃| 日本尹人综合香蕉在线观看 | 色婷婷色丁香| 天堂成人在线| 欧美自慰一级看片免费| 久久久精品久久久久三级| 亚洲第一色视频| 在线一级毛片| 四虎影视库国产精品一区| 91免费精品国偷自产在线在线| 97人人模人人爽人人喊小说| 久久久久国产一级毛片高清板| 日本欧美一二三区色视频| 日韩在线视频网| 国产小视频a在线观看| 久久久久久尹人网香蕉 | 国产丝袜第一页| 色噜噜狠狠色综合网图区| 亚洲欧美不卡中文字幕| 国产精品久久久久久久久| av午夜福利一片免费看| 国产成人久久777777| 亚洲av日韩av制服丝袜| 国产流白浆视频| 国产精品区网红主播在线观看| 亚洲国产综合第一精品小说| 99热国产这里只有精品9九| 亚洲人妖在线| 日韩一级二级三级| 美女视频黄又黄又免费高清| 亚洲 成人国产| 亚洲精品国产综合99久久夜夜嗨| 成人毛片免费在线观看| 国产日韩欧美黄色片免费观看| 2021国产精品自产拍在线观看 | 久久精品电影| 99人妻碰碰碰久久久久禁片| 国产精品3p视频| 国产精品免费p区| 久久特级毛片| 亚洲欧美成人| 国产成人综合久久| 在线播放精品一区二区啪视频| 色成人亚洲| 亚瑟天堂久久一区二区影院| 亚洲a免费| 91精品最新国内在线播放| 2018日日摸夜夜添狠狠躁| 亚洲成人www| 久久先锋资源| 久久无码av三级| 欧美爱爱网| 欧美日韩午夜| 无码粉嫩虎白一线天在线观看| 无码精品一区二区久久久| 亚洲国产中文在线二区三区免| 色综合成人| 国产精品无码影视久久久久久久 | 啦啦啦网站在线观看a毛片|