DVWA 靶场实验报告 (Medium Level)

DVWA 靶场实验报告 (Medium Level)

难度等级: Medium (中级) 报告说明: 本报告基于 DVWA 靶场中等级别安全设置。相比于低等级,中等级别加入了基础的防御机制(如后缀检查、简单的字符串过滤及 CSRF Token 验证),本报告详细记录了 17 项漏洞的绕过技巧与复现过程。


📑 目录

  • [Brute Force --- 暴力破解](#Brute Force --- 暴力破解 "#brute-force")
  • [Command Injection --- 命令注入](#Command Injection --- 命令注入 "#command-injection")
  • [CSRF --- 跨站请求伪造](#CSRF --- 跨站请求伪造 "#csrf")
  • [File Inclusion --- 文件包含](#File Inclusion --- 文件包含 "#file-inclusion")
  • [File Upload --- 文件上传](#File Upload --- 文件上传 "#file-upload")
  • [Insecure CAPTCHA --- 不安全的验证码](#Insecure CAPTCHA --- 不安全的验证码 "#insecure-captcha")
  • [SQL Injection --- SQL 注入](#SQL Injection --- SQL 注入 "#sql-injection")
  • [SQL Injection (Blind) --- SQL 盲注](#SQL Injection (Blind) --- SQL 盲注 "#sql-injection-blind")
  • [Weak Session IDs --- 弱会话 ID](#Weak Session IDs --- 弱会话 ID "#weak-session-ids")
  • [XSS (DOM) --- DOM 型跨站脚本](#XSS (DOM) --- DOM 型跨站脚本 "#xss-dom")
  • [XSS (Reflected) --- 反射型跨站脚本](#XSS (Reflected) --- 反射型跨站脚本 "#xss-reflected")
  • [XSS (Stored) --- 存储型跨站脚本](#XSS (Stored) --- 存储型跨站脚本 "#xss-stored")
  • [CSP Bypass --- CSP 策略绕过](#CSP Bypass --- CSP 策略绕过 "#csp-bypass")
  • [JavaScript Attacks --- JavaScript 攻击](#JavaScript Attacks --- JavaScript 攻击 "#javascript-attacks")
  • [Authorisation Bypass --- 越权访问](#Authorisation Bypass --- 越权访问 "#authorisation-bypass")
  • [Open HTTP Redirect --- 开放重定向](#Open HTTP Redirect --- 开放重定向 "#open-http-redirect")
  • [Cryptography --- 密码学](#Cryptography --- 密码学 "#cryptography")

01. Brute Force --- 暴力破解

中级防御

后端加入了 sleep(2) 函数,旨在减缓暴力破解的速度。

绕过技巧

  • 多线程与并发:虽然有延迟,但攻击者仍可使用 Burp Suite 的多线程模式。
  • 逻辑绕过:如果登录失败次数未被锁定,单纯的延迟只能增加攻击时间,无法阻断攻击。

02. Command Injection --- 命令注入

中级防御

后端设置了黑名单,过滤了 &&; 等常用连接符。

绕过技巧

  • 替换符号 :使用 |& 代替 &&
  • Payload : 127.0.0.1 | whoami

03. CSRF --- 跨站请求伪造

中级防御

增加了 HTTP_REFERER 检测,验证请求是否来自本站。 观察url的参数 ?password_new=admin&password_conf=admin&Change=%B8%C4%B1%E4# 直接访问此url提示不正确 源码可以看到有请求的来源检测

绕过技巧

  • Referer 伪造/绕过 :如果后端只判断域名是否包含关键字,可构造文件名包含关键字的恶意页面。
  • 利用跨站漏洞:结合 XSS 漏洞在同源环境下发起请求,此时 Referer 验证将失效。

04. File Inclusion --- 文件包含

中级防御

过滤了 ../ 等相对路径跳转符。

绕过技巧

  • 双写绕过 :使用 ....//。当后端删除一组 ../ 后,剩下的字符会自动组成新的 ../
  • Payload : ?page=..././..././..././etc/passwd 访问url vulnerabilities/fi/?page=....//....//....//....//....//1.php 也可以进行远程地址访问 vulnerabilities/fi/?page=htthttp://p://baidu.com

05. File Upload --- 文件上传

中级防御

检查了上传文件的 Content-Type(MIME 类型)。

直接上传webshell提示失败

绕过技巧

  • 抓包修改 MIME :将 application/octet-stream 改为 image/jpeg 成功绕过 后续就是连接webshell了
  • 截断绕过 :在某些老旧环境中,可使用 %00 截断。

06. Insecure CAPTCHA --- 不安全的验证码

中级防御

加入了 passed_captcha 参数检测。

绕过技巧

  • 参数篡改 :在抓包时手动添加或修改 step=2 及验证通过的标识参数,直接跳过图形验证逻辑。

07. SQL Injection --- SQL 注入

中级防御

简单的sql注入,不过是要在post请求包里修改

绕过技巧

可以保存数据包用sqlmap跑也可以自己手注入,因为比较简单就用手注入

order by检测为2 联合注入显示其他信息 后续注入数据库 表 列 值即可


08. SQL Injection (Blind) --- SQL 盲注

绕过技巧

同上,利用数字型注入点进行布尔或时间盲注。 盲注,直接用sqlmap吧, sqlmap -r D:\Backup\桌面\1.txt --dbs --batch 直接跑出来了,不过用的是布尔盲注和时间盲注


09. Weak Session IDs --- 弱会话 ID

中级防御

Session ID 基于当前时间戳生成。

破解思路

  • 时间同步攻击 :通过预测服务器时间,计算可能的 Session ID 进行碰撞劫持。

10. XSS (DOM) --- DOM 型跨站脚本

绕过技巧

中级通常会对 <script> 标签做基础过滤,可以尝试使用图片标签的 onerror 事件:

  • Payload : <img src=x onerror=alert(1)> 访问?default=<img src=x onerror="alert(1)">

11. XSS (Reflected) --- 反射型跨站脚本

中级防御

过滤了 <script> 标签。

绕过技巧

  • 大小写绕过<sCript>alert(1)</sCript>
  • 双写绕过<scr<script>ipt>alert(1)</script> <img src=x onerror="alert('xss')">

12. XSS (Stored) --- 存储型跨站脚本

绕过技巧

除了上述标签绕过,中级往往只限制了 message 字段。 message过滤比较严格,无法攻击 但是name参数过滤简单

  • 多点测试 :尝试在 Name 字段进行注入(可能需要通过 F12 修改输入框长度限制)。 <Script>alert(1)</Script> 但遇到一个问题,前端做了简单的输入框长度检测 简单,在源代码里面修改长度即可 成功

13. CSP Bypass --- CSP 策略绕过

绕过技巧

寻找 CSP 白名单中的 CDN 资源,利用这些资源中的 JSONP 接口来执行恶意代码。 查看源代码,有多个csp参数过滤


php 复制代码
<?php

$headerCSP = "Content-Security-Policy: script-src 'self' 'unsafe-inline' 'nonce-TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=';";

header($headerCSP);

// Disable XSS protections so that inline alert boxes will work
header ("X-XSS-Protection: 0");

# <script nonce="TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=">alert(1)</script>

?>

本来过滤很严格的,但是多了一个unsafe-inline这个 导致其他只允许部分内联函数的限制失效了,允许所有的内联函数了 所有我们直接自己构造就好了,无限制


14. JavaScript Attacks --- JavaScript 攻击

实验过程

提交原本参数用hackbar查看发包的数据

然后用success提交再次查看发包数据 提示无效的token

我们发现token没变 token是changeme的倒叙然后前后加xx 我们更具此规律构造success的token XXsseccusXX 提交正确


15. Authorisation Bypass --- 越权访问

逻辑分析

admin用户可以正常查看修改 修改到普通用户我们看不那那个界面的选项卡了 直接访问目录会提示无权限 但是我们通过翻admin的网络数据包时发现,他把数据写到一个php文件之后才加载的 而此php文件没有做权限鉴权 可以通过直接访问这个php文件来查看数据,信息泄露


16. Open HTTP Redirect --- 开放重定向

绕过技巧

如果后端过滤了 http://,可以尝试使用 // 协议相对路径或者进行 URL 编码绕过。 查看网页代码,看到重定向的文件的参数 尝试直接构造

vulnerabilities/open_redirect/source/medium.php?redirect=http://baidu.com 提示不允许绝对url,显然对参数进行了过滤

我们将http删除,直接用//来实现远程地址访问 vulnerabilities/open_redirect/source/medium.php?redirect=//baidu.com 查看源代码发现确实对http的https进行了检测过滤


17. Cryptography --- 密码学

进阶内容

查看源代码 对密码有个简单的硬加密,可以直接破解 2.要同时满足三个条件: user 等于 sweep ex 大于当前时间戳(未过期) level 等于 admin 篡改token密钥实现admin登录


相关推荐
运维有小邓@6 小时前
什么是重放攻击?如何避免成为受害者?
运维·网络·安全
夜珀7 小时前
AtomGit组织、权限与安全完全指南
安全
skilllite作者13 小时前
AI 自进化系统架构详解 (一):重新定义 L1-L3 等级,揭秘 OpenClaw 背后的安全边界
人工智能·安全·系统架构
夏冰加密软件13 小时前
【实测】文件加密软件解除保护的2种方法(以超级加密3000为例)
windows·安全
a11177614 小时前
网络安全检查表 docx 附文件
网络·安全·web安全
上海云盾商务经理杨杨14 小时前
DDoS攻击日志分析与攻击源定位实战
安全·ddos
dashizhi201518 小时前
电脑禁用U口、禁用USB端口、屏蔽移动存储设备使用的方法
windows·安全·电脑
东北甜妹18 小时前
Redis 知识总结
运维·nginx·安全
夫子樊18 小时前
资损防控与安全生产
安全
星幻元宇VR18 小时前
VR星际行走平台|沉浸式科普教育与未来体验的新入口
科技·学习·安全·生活·vr