
DVWA靶场Web漏洞复现与防御分析SQL注入/XSS/CSRF/命令注入 免责声明本文内容仅为个人在合法靶场DVWA环境下的学习记录所有测试均在授权范围内进行严禁用于未授权测试。文中涉及的技术仅供学习交流请遵守《网络安全法》及相关法律法规。---一、实验环境- 攻击机Kali Linux- 靶机Windows Server DVWA- 中间件Apache PHP MySQL- 工具BurpSuite、SQLMap、Firefox- 靶场DVWA安全级别Low说明本文所有测试均在本地虚拟化靶场环境中完成IP地址为192.168.23.0/24.二、SQL注入攻击与防御2.1 布尔盲注通过构造 and 11 和 and 12 判断页面差异逐步猜测数据库名。核心思路是利用页面返回的真假状态推断字符。猜测数据库库名2.2 时间盲注当页面没有明显回显差异时使用 sleep() 函数通过响应时间判断注入条件是否成立。猜测数据库库名2.3 SQLMap自动注入使用 BurpSuite 抓取登录请求保存为 request.txt再用 SQLMap 加载bashsqlmap -r request.txt --dbssqlmap -r request.txt -D dvwa -T users --dump成功导出 dvwa 库 users 表数据。2.4 防御分析1. 使用预编译参数化查询彻底分离代码与数据2. 数据库账号最小权限禁止root直连3. 输入白名单校验4. 关闭详细报错信息5. 部署WAF作为辅助。三、XSS跨站脚本攻击与防御3.1 反射型XSS复现在 DVWA 反射型XSS模块输入测试 payload验证脚本是否执行htmlscriptalert(document.cookie)/script页面弹窗成功说明存在反射型XSS。Windows2008用户登录靶场DVWA弹出登录Cookie。在攻击机kali中建立钓鱼网页和恶意链接恶意链接传输恶意脚本。脚本代码在攻击机中建立接收Cookie的网页写出php脚本3.2 会话凭证窃取思路攻击者构造钓鱼页面诱导已登录用户点击恶意脚本将用户 Cookie 发送到攻击者服务器。模拟Windows用户访问钓鱼网页点击恶意链接后的页面攻击机查看收集到的远程主机Cookie值攻击机利用窃取的Cookie值登录服务器。3.3 防御分析1. 对用户输入和输出做严格过滤/编码禁止特殊字符、、、 等2. 启用 CSP内容安全策略限制脚本加载源3. Cookie 设置 HttpOnly、Secure、SameSite 属性4. 敏感操作需二次验证不依赖单一会话凭证。四、CSRF跨站请求伪造与防御4.1 攻击流程用户登录 DVWA 后访问攻击者构造的钓鱼页面页面自动向靶场发送修改密码请求利用用户已登录的会话完成操作。Windows2008用户正常登录靶场Windows2008执行铭感操作修改登录密码测试密码有效性。攻击机kali建立钓鱼网页建立恶意链接伪造用户修改密码。Windows2008再次测试密码有效性。4.2 防御分析1. 关键操作增加 CSRF Token2. 校验 Referer3. Cookie 设置 SameSite4. 敏感操作二次验证如原密码、短信验证码。五、命令注入攻击在 DVWA 命令注入模块输入 127.0.0.1 whoami验证命令是否被拼接执行。防御对用户输入做白名单校验避免直接拼接系统命令使用 escapeshellarg() 等函数。六、总结与防御建议本次实验在 DVWA 靶场中复现了 SQL注入、XSS、CSRF、命令注入等常见 Web 漏洞。核心体会1. Web 攻击本质是“找漏洞 钻空子”利用合法入口发送恶意数据2. 防御要从输入校验、输出编码、权限控制、日志审计多方面入手3. 渗透测试必须在授权范围内进行注重证据链和合规性4. 实验后复盘把攻击思路转化为防御逻辑。 再次声明本文所有测试均在合法靶场完成严禁用于未授权测试。