主要观点:介绍“cookie 三明治”技术,可绕过某些服务器的 HttpOnly 标志,该技术利用特殊字符在浏览器和服务器之间的处理差异进行攻击,通过示例展示了在真实世界中利用该技术窃取 HttpOnly PHPSESSID cookie 的过程。
关键信息:
- “cookie 三明治”技术通过在 cookie 值中巧妙放置引号和特殊字符,使服务器误解析 cookie 头结构,从而暴露 HttpOnly cookie 。
- 示例中通过利用 XSS 漏洞、跟踪域漏洞以及 Apache Tomcat 的特性,操纵 cookie 顺序和值,实现窃取 HttpOnly cookie 。
- 强调了 cookie 安全的重要性,应关注 cookie 编码和解析行为,了解所使用的框架和浏览器对 cookie 的处理方式。
重要细节: - Chrome 浏览器不支持 legacy cookies ,但允许攻击者创建以 $ 开头的 cookie 名,如 $Version 。
- Apache Tomcat 解析 cookie 头时,默认使用 legacy 解析逻辑,若 cookie 值以双引号开头则继续读取直到下一个未转义的双引号字符,还会转义以反斜杠开头的字符。
- Python 框架默认支持带引号的字符串,无需特殊的 $Version 属性,且以分号作为浏览器的 cookie 对分隔符。
- 分析了常见的应用场景,如分析工具易受 cookie 三明治攻击,因为通常不验证跟踪 ID 。
- 给出了具体的攻击步骤和利用代码,包括创建 iframe 、设置 cookie 、发送 fetch 请求等。
- 提供了相关的推荐和学习资源,如之前关于绕过 WAFs 的博客、在 X (formerly Twitter) 和 Bluesky 上的关注以及官方 PortSwigger Discord ,还推荐了 Ankur Sundara 的博客。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。