找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2194

积分

1

好友

298

主题
发表于 昨天 04:08 | 查看: 6| 回复: 0

在渗透测试或安全研究过程中,我们常常遇到部署了Web应用防火墙(WAF)的站点,它们会过滤或拦截常见的XSS攻击载荷。这时,掌握一些非主流或利用特定场景的绕过技巧就显得尤为重要。本文将分享一种利用<marquee>标签进行反射型XSS注入并尝试绕过基础过滤的案例。

攻击载荷分析

首先,我们来看一段用于测试的XSS攻击载荷代码:

">>>>>>><marquee onmouseover='alert(5)'>RXSS</marquee></head><abc></script><script>alert(origin)</script><meta

这段代码看似杂乱,但包含了几个关键的绕过思路:

  1. 前置闭合与垃圾数据:开头的 ">>>>>> 试图提前闭合页面中可能存在的属性(如 value=")或标签,并通过大量 > 字符干扰简单的正则匹配。
  2. 利用<marquee>标签<marquee>是一个用于创建滚动文本的HTML标签,在现代前端开发中已不常用,但浏览器仍普遍支持。一些WAF的过滤规则可能未将其列入高危标签清单,从而为我们提供了可乘之机。这里为其添加了一个 onmouseover 事件处理器,当用户鼠标移过该滚动区域时,会触发 alert(5)
  3. 混淆与干扰:在<marquee>标签之后,代码尝试闭合</head>,并插入无意义的<abc>标签,以及试图通过</script><script>的拼接来干扰对<script>标签的检测,最后再尝试触发一个alert(origin)
  4. 未闭合的<meta:结尾的<meta标签故意不闭合,可能会破坏页面原有结构,导致后续的HTML解析出现意外行为,有时能辅助绕过某些依赖完整语法树进行检测的WAF。

如果目标站点的输入过滤不严谨,成功注入了类似上述的载荷,当其他用户访问被篡改的页面时,可能会看到如下图所示的弹窗:

XSS弹窗示例

上图中弹出的警告框正是 onmouseover='alert(5)'<script>alert(origin)</script> 成功执行的结果,证明了漏洞的存在。

技巧总结与防御建议

这种绕过方式的核心在于利用了相对“冷门”的HTML标签和事件属性。它提醒我们,安全防护不能只针对高频出现的<script>onclickonerror等进行过滤,需要对所有可执行脚本的HTML标签和事件处理器保持警惕。

对于开发者而言,最有效的防御手段仍然是实施严格的输出编码。根据数据输出的上下文(HTML体、HTML属性、JavaScript、CSS、URL),选用正确的编码函数(如HTML实体编码、JavaScript编码)。同时,采用内容安全策略(CSP)可以大幅降低这类攻击的成功率与危害。

对于安全研究人员,深入理解前端安全的各种攻击向量与绕过手法,是进行有效漏洞挖掘和渗透测试的基础。不断探索WAF规则集的盲点,有助于推动整体安全防护水平的提升。




上一篇:AI抓取如何重塑开源商业模式:以Tailwind CSS为例的深度分析
下一篇:Spring AI RAG实战:集成Milvus向量数据库的生产级优化指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-11 17:38 , Processed in 0.192171 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表