如何撰写DVWA靶场实验报告(高级)的详细?
摘要:> **难度等级**:High
> **报告说明**:本文为 DVWA 靶场 High 难度下**17个漏洞**的详细渗透测试步骤,包含漏洞原理、利用方法、工具操作及核心Payload,全程基于B
DVWA 靶场实验报告 (High Level)
难度等级:High
报告说明:本文为 DVWA 靶场 High 难度下17个漏洞的详细渗透测试步骤,包含漏洞原理、利用方法、工具操作及核心Payload,全程基于Burp Suite、Sqlmap等工具实现,所有操作步骤均配套实操截图
https://www.cnblogs.com/wrold
📑 目录
Brute Force --- 暴力破解
Command Injection --- 命令注入
CSRF --- 跨站请求伪造
File Inclusion --- 文件包含
File Upload --- 文件上传
Insecure CAPTCHA --- 不安全的验证码
SQL Injection --- SQL 注入
SQL Injection (Blind) --- SQL 盲注
Weak Session IDs --- 弱会话 ID
XSS (DOM) --- DOM 型跨站脚本
XSS (Reflected) --- 反射型跨站脚本
XSS (Stored) --- 存储型跨站脚本
CSP Bypass --- CSP 策略绕过
JavaScript Attacks --- JavaScript 攻击
Authorisation Bypass --- 越权访问
Open HTTP Redirect --- 开放重定向
Cryptography --- 密码学
1. Brute Force — 暴力破解
漏洞特点
High 难度新增时间延迟+user_token 验证,token 明文显示在前端页面,需动态提取 token 配合爆破。
利用步骤
抓包:通过Burp Suite抓取登录请求包,可见username、password、user_token三个核心参数,token 为32位随机字符串。
定位token:查看前端页面源码,token 藏在<input type="hidden" name="user_token" value="xxx">中,可通过正则匹配提取。
Burp 配置
进入Intruder,选择Pitchfork 交叉爆破,标记password和user_token为爆破位置;
进入Settings,开启提取Grep项,正则表达式配置为value=(.*?)\/>\r\n,匹配前端的token值;
对user_token的Payload类型选择递归提取,并填入初始请求的有效token(抓包获取的原始token)。
爆破设置:将资源池发包最大次数改为1(禁止并发,避免token失效),加载密码字典开始爆破。
结果分析:按响应长度排序,长度与其他条目不同的即为正确密码(正确登录的响应页面与错误页面长度存在明显差异)。
核心注意点
抓包后禁止提前发包,否则token会刷新导致爆破失败,需保证初始token与爆破请求一致。
2. Command Injection — 命令注入
漏洞特点
High 难度对管道符等命令分隔符做了黑名单过滤,但过滤代码存在空格书写错误,导致过滤失效,可构造无空格的命令拼接Payload。
漏洞代码分析
if(isset($_POST['Submit'])){
$target= trim($_REQUEST['ip']);
$substitutions = array(
// 过滤代码存在多余空格,导致过滤逻辑失效
);
$target=str_replace( array_keys( $substitutions ),$substitutions, $target );
if(stristr(php_uname('s'),"Windows NT")){
$cmd=shell_exec("ping ".$target);
}else{
$cmd=shell_exec("ping -c4 ".$target);
}
$html.="<pre>{$cmd}</pre>";
}
利用方法
直接构造无空格管道符拼接的Payload,绕过滤黑名单位置:
127.0.0.1|whoami
提交后成功执行系统命令,返回当前用户信息。
3. CSRF — 跨站请求伪造
漏洞特点
High 难度新增user_token 验证,token 明文显示在前端HTML源码中,单纯构造CSRF链接无法绕过,需配合XSS漏洞提取token后组合攻击。
