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登录


相关推荐
red1giant_star1 小时前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954485 小时前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher2 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行5 天前
网络安全总结
安全·web安全
red1giant_star5 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
ZeroNews内网穿透5 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
一名优秀的码农5 天前
vulhub系列-14-Os-hackNos-1(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
Libraeking5 天前
05 安全边界:MCP Server 的权限沙箱与敏感数据保护
安全
龙仔7255 天前
在麒麟V10服务器安全加固,sshd防暴力破解加固,实现“密码错误3次封IP”的需求
服务器·tcp/ip·安全