Browser Security

7 篇内容

工程实践Simon Willison

How We Took Over ChatGPT Accounts

文章转述 Parameter Labs 对 ChatGPT HTML 预览沙箱的漏洞利用:受限 iframe 通过 postMessage 触发父页面 MathLive 虚拟键盘逻辑,该逻辑使用 innerHTML 且未校验来源,使不可信 iframe 能注入绕过 sandbox 的新 iframe。接着利用 CSP 允许 YouTube 脚本域的口子,借 oEmbed 端点反射 JavaScript,获得页面脚本执行权限,再读取私有 API 数据并经图片请求外传。最终恶意分享链接可在已登录用户访问时窃取数据或代其操作;OpenAI 已修复并支付 5000 美元赏金。该文是精炼摘要,未展开完整 PoC 与修复细节,需结合原始报告阅读。

推荐收录。文章给出从 postMessage 信任边界、innerHTML 注入、sandbox 绕过到 CSP 白名单滥用的完整攻击链,并说明恶意分享链接对已登录用户的真实影响,适合 Web 安全、AppSec 与 AI 产品安全工程师参考。其可迁移价值在于提醒开发者对跨 iframe 消息校验来源、避免用 innerHTML 处理不可信数据,并审慎评估 CSP 允许域的可利用性;不足是摘要较简短,需结合原始报告。

科研议题PortSwigger Research

Scalable Vector Grief

文章测试了 8 个流行 SVG sanitizer,并成功绕过其中 6 个,集中展示 SVG 上传场景中的 XSS 风险。作者用命名空间混淆、animate/animateTransform 注入 javascript: URL、内联 XSLT data URL、Firefox Link 响应头加载 XSLT,以及 Safari 将 GIF 经 <use> 当 SVG 导入等具体案例,说明清洗器若只检查元素和属性、忽略浏览器解析差异,就会被绕过。DOMPurify 和 darylldoyle/svg-sanitizer 未被本文手法攻破,作者还提到两个暂未命名的真实应用待披露。文章给出可复现 payload,适用于安全研究、代码审计和图片/富文本上传防护,但部分技巧依赖特定浏览器行为,且相关 XSLT 特性即将废弃。

推荐收录:文章以 8 个真实 SVG sanitizer 的测试结果和可复现 payload 为直接证据,系统展示了解析差异如何导致清洗绕过。适合安全工程师、代码审计人员和 SVG 上传功能开发者,用于评估清洗策略、补充浏览器差异测试;迁移时需验证 Firefox/Safari 版本及 XSLT 特性生命周期。

科研议题PortSwigger Research

Smashing the token limit with overlapping fragments

文章提出用重叠片段突破 CSS 注入令牌窃取的长度限制。作者用 CSS 选择器收集 URL 中短子串的出现情况,再把 k 字符片段当作图中的边,通过两字符重叠拼接候选令牌,并用更长片段校验连接。随机 URL 实验显示,12 字符十六进制令牌约 223 KB CSS 可在 90% 情况下留下不超过 5 个候选,约 1.33 MB 可 99% 唯一恢复;在约 257 MB 预算下可恢复 210 字符(99% 唯一)或 640 字符(90% 五候选)。方法已集成到 Burp AT,并能针对 44 字符混合字母数字令牌改用 2 字符片段;局限是仍可能有多候选路径,体积随字符集和长度增长。

推荐收录:文章把 CSS 注入窃取令牌重新表述为重叠片段拼接问题,给出图模型、分组校验策略与随机 URL 实验,证明 223 KB 可处理 12 字符令牌、约 257 MB 可处理 640 字符。适合 Web 安全研究者、渗透测试者和浏览器安全开发者阅读;但需注意其依赖 CSS 注入条件、字符集大小和候选消歧,实际利用受部署环境约束。

工程实践Cloudflare Blog

When scanners miss the attack: how Cloudflare Client-Side Security protects storefronts

Cloudflare 博客展示 Page Shield ML 检测四种在野恶意 JavaScript 操作:联盟佣金劫持、无点击联盟窃取、Lnkr 后门和付费移动端 cloaker。检测侧用 GNN 将 JS 建模为语法/调用图,对少数可疑脚本用 Workers AI 轻量 LLM 复核,并用多前沿模型教师集成投票,标签分布反馈 GNN 训练。案例显示攻击者靠设备、时间、地域、会话和网络条件选择性执行,并隐藏 iframe、拦截点击、关闭监控、替换分析身份和远程加载代码。文章强调行为分析、持续可见性和动态上下文优于签名与单次扫描,并给出 IOC 与防御者经验。局限是部分归因、二阶段载荷和实际损失未证实,且内容带有 Cloudflare 产品推广背景。

推荐收录:文章具体披露四起在野恶意脚本活动的攻击链、cloaking 门控与 IOC,并说明 GNN+LLM+模型集成检测流水线,证据密度高于一般产品宣传。适合 Web 安全、浏览器安全、供应链安全和 ML 安全检测方向的工程师与研究者阅读,可迁移到持续客户端脚本监控与误报控制设计;但需注意其厂商背景,部分攻击后果与归因仍属未证实。

技术文章Elastic Security Labs

The extension you never installed: KREMLIN forges Chrome's own integrity checks to steal banking sessions

文章跟踪巴西银行木马 REF9334 及其 KREMLIN 工具链,梳理从恶意 JS 文档、沙箱规避、Node.js 下载、持久化到 C++ 安装器的完整感染链。核心机制是将恶意扩展写入 Chrome/Edge 配置并篡改 Secure Preferences,利用从 Local State、调试浏览器进程和 resources.pak 恢复的 OSCrypt/App-Bound 密钥重算 HMAC 与加密哈希,绕过 Chromium 完整性校验。扩展伪装成 AVSync,通过 WebSocket 和伪装成 CSS 的 HTTP 接口轮询指令,窃取 Cookie、会话、历史、截图与页面源码,并支持键盘记录、请求拦截和重定向。基础设施还用以太坊智能合约作为 dead-drop 动态下发 C2 与载荷,关联 2025—2026 年七个攻击活动及 PULSAR/REMCOS。文章证据充分,但依赖特定样本与 Chromium 版本,适合安全研究和浏览器防护参考。

推荐收录:文章给出恶意扩展绕过 Chromium 完整性校验的可验证技术细节,包括 Secure Preferences 篡改、OSCrypt/App-Bound 密钥恢复与哈希重算,并公开完整感染链、C2 协议、IOC 和区块链资金流。对浏览器安全、终端检测、恶意软件逆向和威胁情报读者有较高长期参考价值;主要风险是攻击细节可被滥用,且 Chromium 版本更新可能使部分结论失效。

技术文章PortSwigger Research

What's in a tag name? JavaScript, apparently

文章作者从‘HTML标签名允许哪些字符’这一简单问题出发,系统探索了浏览器对标签名的解析与转换机制。他发现标签名会被浏览器统一转为大写,但DOM的localName属性保留了原始的小写形式,从而可被用来构造JavaScript代码。作者利用onfocus、autofocus、tabindex等属性,结合attributes[0].value、part属性、classList等,设计出多个可自执行的XSS向量,并验证了它们在主流浏览器中的有效性。文中还展示了借助AI工具发现的新变体,例如使用contenteditable替代tabindex,以及setHTMLUnsafe、getAttributeNode等替代方案。最后作者指出,浏览器对标签名的宽松解析使得标签名可以成为隐藏载荷、URL或新标记的载体,从而绕过基于块列表和WAF签名的防护。文章提供了大量可复现的payload示例,并强调这些技术适用于绕过特定规则的场景,但也提醒开发者应关注浏览器解析的意外行为。

这是PortSwigger研究团队发布的原创XSS向量研究,直接展示了浏览器标签名解析的异常行为,并提供了多个绕过WAF的完整payload,具有明确的攻击原理验证过程。对于从事Web安全测试、WAF规则编写或漏洞研究的读者,本文提供了可迁移的绕过思路和检测建议,是理解浏览器宽容解析特性的重要参考。

工程实践Xe Iaso

Anubis continues to expose new ways people configure webservers

本文是作者在开发 Anubis 反爬虫验证系统时对 CSP(内容安全策略)与 Web Worker 交互问题的技术复盘。文章首先说明 CSP 默认禁用所有浏览器特性,再按需放行,并给出 Anubis 的示例策略。作者发现当 CSP 禁止从 blob: URI 加载 Worker 时,错误不会在构造 Worker 时抛出,而是异步出现在 onerror 回调中。为了减少并行 Worker 带来的服务端请求压力,Anubis 改为先用 fetch 一次性加载 Worker 源码,再打包成 blob: URL 使用,同时保留旧逻辑以兼容禁止 blob: 的 CSP 配置。文章还讨论了 proof of work 计算中单个 worker 失败时的容忍策略。最后指出这些边界情况是日常维护中的常见问题,体现了浏览器安全策略与前端性能优化之间的实际权衡。

推荐收录,因为文章基于真实项目记录了 CSP 与 Web Worker 的兼容性细节,包括异步错误的行为差异和通过 blob: URL 减少请求的优化方案,这些内容在官方文档中较少被集中说明。适合前端工程师、Web 安全策略制定者以及需要做浏览器端并行计算的开发者阅读,能帮助理解安全策略对性能的约束,并迁移类似需求下的取舍经验。