Lobsters | 📄 原文链接 | 2026-10-29 收录

八个 SVG 净化库六个被绕过:响应头里也能藏 XSS

来源:portswigger.net — 2026-10-27

📋 概述

Gareth Heyes 测了八个流行 SVG 净化库,绕过其中六个。手法包括:把单个元素的命名空间切成 XHTML,就能在 SVG 里直接渲染 HTML 与 iframe;净化器把元素名转成驼峰后查询小写名,结果 foreignObject 直穿;放行 animate 标签就能把链接的 href 动画成 javascript:;用指向 data URL 的 xml-stylesheet 处理指令加载自带 XSLT 执行脚本;更狠的是把这份样式表塞进 Link 响应头,正文是完全无害的 XML,Firefox 照样执行。Safari 还能用 use 把含载荷的 GIF 当 SVG 引入。DOMPurify 与 darylldoyle/svg-sanitizer 全部挡住。

🔑 核心要点

💡 金句

I tested eight popular SVG sanitizers and bypassed six of them. In this post, I'll show you how a response header can run JavaScript in Firefox even when the response body is completely harmless XML.
← 返回 Lobsters 首页