6.7 KiB
☁️ HackTricks 云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一个网络安全公司工作吗?想要在 HackTricks 中看到你的公司广告吗?或者想要获取最新版本的 PEASS 或下载 HackTricks 的 PDF吗?请查看订阅计划!
-
发现我们的独家 NFT 收藏品The PEASS Family
-
加入💬 Discord 群组 或 Telegram 群组,或者关注我在Twitter上的🐦@carlospolopm。
-
通过向 hacktricks 仓库 和 hacktricks-cloud 仓库 提交 PR 来分享你的黑客技巧。
描述
如果攻击者能够控制公司的子域或域名,或者在子域中找到 XSS 漏洞,他将能够执行此攻击。
正如在 Cookie Hacking 部分中所指出的,当将 cookie 设置为一个域(指定域)时,它将在该域和子域中使用。
{% hint style="danger" %}
因此,攻击者将能够在域和子域中设置特定的 cookie,类似于 document.cookie="session=1234; Path=/app/login; domain=.example.com"
{% endhint %}
这可能是危险的,因为攻击者可能能够:
- 将受害者的 cookie 固定到攻击者的帐户,因此如果用户没有注意到,他将在攻击者的帐户中执行操作,攻击者可能会获取一些有趣的信息(检查用户在平台上的搜索历史记录,受害者可能在帐户中设置他的信用卡...)
- 如果登录后 cookie 没有更改,攻击者可以只是固定一个 cookie,等待受害者登录,然后使用该 cookie 作为受害者登录
- 如果cookie 设置了一些初始值(例如在 flask 中,cookie 可能会设置会话的 CSRF 令牌,并且该值在受害者登录后将保持不变),攻击者可以设置这个已知值,然后滥用它(在这种情况下,攻击者可以让用户执行 CSRF 请求,因为他知道 CSRF 令牌)。
Cookie 顺序
当浏览器接收到两个具有相同名称的 cookie,部分影响相同范围(域、子域和路径)时,浏览器将在两个 cookie 的值都有效的情况下发送两个值的 cookie。
根据谁拥有最具体的路径或哪个是最旧的,浏览器将首先设置 cookie 的值,然后设置另一个值,如下所示:Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;
大多数网站只会使用第一个值。因此,如果攻击者想要设置一个 cookie,最好在另一个 cookie 被设置之前设置它,或者使用更具体的路径设置它。
{% hint style="warning" %} 此外,能够在更具体的路径中设置 cookie非常有趣,因为你将能够让受害者使用他的 cookie,除了在发送恶意 cookie 的特定路径之外。 {% endhint %}
绕过保护
对此攻击的可能保护措施是,Web 服务器不接受具有相同名称但具有不同值的两个 cookie 的请求。
为了绕过攻击者在受害者已经获得 cookie 后设置 cookie 的情况,攻击者可以引起cookie 溢出,然后一旦合法 cookie 被删除,设置恶意 cookie。
{% content-ref url="cookie-jar-overflow.md" %} cookie-jar-overflow.md {% endcontent-ref %}
另一个有用的绕过方法是对 cookie 的名称进行URL 编码,因为某些保护会检查请求中是否存在两个具有相同名称的 cookie,然后服务器将解码 cookie 的名称。
Cookie 炸弹
Cookie Tossing 攻击也可以用于执行Cookie 炸弹攻击:
{% content-ref url="cookie-bomb.md" %} cookie-bomb.md {% endcontent-ref %}
防御措施
在 cookie 名称中使用前缀 __Host
- 如果 cookie 名称具有此前缀,它只会在 Set-Cookie 指令中被接受,如果它标记为 Secure,从安全来源发送,不包括 Domain 属性,并且具有设置为 / 的 Path 属性
- 这样可以防止子域强制将 cookie 强制到顶级域,因为这些 cookie 可以被视为“域锁定”
参考资料
- @blueminimal
- https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers
- https://github.blog/2013-04-09-yummy-cookies-across-domains/
☁️ HackTricks 云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一个网络安全公司工作吗?想要在 HackTricks 中看到你的公司广告吗?或者想要获取最新版本的 PEASS 或下载 HackTricks 的 PDF吗?请查看订阅计划!
-
发现我们的独家 NFT 收藏品The PEASS Family
-
加入 💬 Discord 群组 或 Telegram 群组,或在 Twitter 上 关注我 🐦@carlospolopm。
-
通过向 hacktricks 仓库 和 hacktricks-cloud 仓库 提交 PR 来分享你的黑客技巧。