2024-03-17 16:50:32 +00:00
# Cookie Tossing
2022-04-28 16:01:33 +00:00
< details >
2024-02-09 08:23:12 +00:00
< summary > < strong > ゼロからヒーローまでAWSハッキングを学ぶ< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE( HackTricks AWS Red Team Expert) < / strong > < / a > < strong > ! < / strong > < / summary >
2022-04-28 16:01:33 +00:00
2024-02-09 08:23:12 +00:00
HackTricksをサポートする他の方法:
2022-04-28 16:01:33 +00:00
2024-02-09 08:23:12 +00:00
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS& HackTricksグッズ** ](https://peass.creator-spring.com )を入手する
2024-03-17 16:50:32 +00:00
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見る
2024-04-04 08:57:58 +00:00
* **💬 [Discordグループ ](https://discord.gg/hRep4RUj7f )**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@carlospolopm** ](https://twitter.com/hacktricks\_live )**。**
* **ハッキングトリックを共有する**ために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する
2022-04-28 16:01:33 +00:00
< / details >
2024-03-17 16:50:32 +00:00
### 説明
2021-10-20 23:25:53 +00:00
2024-02-09 08:23:12 +00:00
攻撃者が**企業のサブドメインまたはドメインを制御できるか、サブドメインでXSSを見つける**ことができれば、この攻撃を実行できます。
2021-10-19 00:01:07 +00:00
2024-04-04 08:57:58 +00:00
Cookieハッキングセクションで示されているように、**cookieがドメインに設定されると( それを指定して) そのドメインとサブドメインで使用されます。**
2021-10-19 00:01:07 +00:00
{% hint style="danger" %}
2024-04-04 08:57:58 +00:00
したがって、**攻撃者はドメインとサブドメインに特定のcookieを設定できるようになり、次のようなことを行うことができます** `document.cookie="session=1234; Path=/app/login; domain=.example.com"`
2021-10-19 00:01:07 +00:00
{% endhint %}
2024-02-09 08:23:12 +00:00
これは危険であり、攻撃者は次のようなことができるかもしれません:
2021-10-19 00:01:07 +00:00
2024-02-09 08:23:12 +00:00
* **被害者のcookieを攻撃者のアカウントに固定**することができるため、ユーザーが気づかない場合、**彼は攻撃者のアカウントでアクションを実行**し、攻撃者はいくつかの興味深い情報を入手するかもしれません(プラットフォームでのユーザーの検索履歴を確認したり、被害者がクレジットカードをアカウントに設定したり...)
2024-04-04 08:57:58 +00:00
* **ログイン後にcookieが変更されない場合**、攻撃者は単に**cookieを固定化( セッション固定化) **し、被害者がログインするのを待ってから**そのcookieを使用して被害者としてログイン**できます。
2024-03-17 16:50:32 +00:00
* 時々、セッションcookieが変更されても、攻撃者は前のものを使用し、新しいものも受け取ります。
2024-04-04 08:57:58 +00:00
* **cookieが初期値を設定している場合**( たとえば、flaskのように**cookie**がセッションのCSRFトークンを**設定**し、この値が被害者がログインした後も維持される場合)、**攻撃者はこの既知の値を設定して悪用**することができます( このシナリオでは、攻撃者はCSRFトークンを知っているので、ユーザーにCSRFリクエストを実行させることができます) 。
2024-03-17 16:50:32 +00:00
* 値を設定するのと同様に、攻撃者はサーバーによって生成された認証されていないcookieを取得し、その中からCSRFトークンを取得して使用することができます。
2021-10-19 00:01:07 +00:00
2024-03-17 16:50:32 +00:00
### Cookieの順序
2021-10-19 00:01:07 +00:00
2024-04-04 08:57:58 +00:00
ブラウザが同じ名前の2つのcookieを受信し、**同じスコープ(ドメイン、サブドメイン、パス)に部分的に影響を与える場合**、**ブラウザはリクエストに対して両方のcookieの値を送信**します。
2021-10-19 00:01:07 +00:00
2024-04-04 08:57:58 +00:00
**最も具体的なパスを持っているか、どちらが最も古いか**に応じて、ブラウザは**最初にcookieの値を設定**し、その後もう一方の値を設定します。例:`Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;`
2021-10-19 00:01:07 +00:00
2024-02-09 08:23:12 +00:00
ほとんどの**ウェブサイトは最初の値のみを使用**します。したがって、攻撃者がcookieを設定する場合は、他のcookieが設定される前に設定するか、より具体的なパスで設定することが良いでしょう。
2021-10-19 00:01:07 +00:00
{% hint style="warning" %}
2024-04-04 08:57:58 +00:00
さらに、**より具体的なパスにcookieを設定する能力**は非常に興味深いものであり、**悪意のあるcookieが送信される前に被害者にそのcookieを使用させることができます**。
2021-10-19 00:01:07 +00:00
{% endhint %}
2024-04-04 08:57:58 +00:00
### 保護の回避
2021-10-19 00:01:07 +00:00
2024-02-09 08:23:12 +00:00
この攻撃に対する可能な保護策は、**ウェブサーバーが同じ名前の2つの異なる値を持つcookieを受け入れないようにする**ことです。
2021-10-19 00:01:07 +00:00
2024-04-04 08:57:58 +00:00
攻撃者が被害者にすでにcookieが与えられた後にcookieを設定しているシナリオをバイパスするために、攻撃者は**cookieオーバーフロー**を引き起こし、その後、**正規のcookieが削除されたら悪意のあるcookieを設定**できます。
2021-10-19 00:01:07 +00:00
{% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md ](cookie-jar-overflow.md )
{% endcontent-ref %}
2024-04-04 08:57:58 +00:00
もう1つの便利な**バイパス**は、**cookieの名前をURLエンコード**することです。一部の保護はリクエスト内の同じ名前の2つのcookieをチェックし、その後サーバーがcookieの名前をデコードします。
2021-10-19 00:01:07 +00:00
2024-03-17 16:50:32 +00:00
### Cookie Bomb
2021-10-20 23:25:53 +00:00
2024-02-09 08:23:12 +00:00
Cookie Tossing攻撃は、**Cookie Bomb**攻撃を実行するためにも使用できます:
2021-10-20 23:25:53 +00:00
{% content-ref url="cookie-bomb.md" %}
[cookie-bomb.md ](cookie-bomb.md )
{% endcontent-ref %}
2024-03-17 16:50:32 +00:00
### 防御
2021-10-19 00:01:07 +00:00
2024-03-17 16:50:32 +00:00
#### **Cookie名に接頭辞`__Host`を使用する**
2024-02-09 08:23:12 +00:00
2024-04-04 08:57:58 +00:00
* Cookie名にこの接頭辞がある場合、それは**セキュアにマークされ、セキュアなオリジンから送信され、Domain属性が含まれず、Path属性が/に設定されている場合**にのみ、Set-Cookieディレクティブで受け入れられます
* **これにより、サブドメインがcookieをapexドメインに強制することが防がれます。これらのcookieは「ドメインロックされた」と見なされる可能性があります**
2021-10-19 00:01:07 +00:00
2024-03-17 16:50:32 +00:00
### 参考文献
2021-10-19 00:01:07 +00:00
2022-04-05 22:24:52 +00:00
* [**@blueminimal** ](https://twitter.com/blueminimal )
2024-01-10 17:17:21 +00:00
* [**https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers** ](https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers )
* [**https://github.blog/2013-04-09-yummy-cookies-across-domains/** ](https://github.blog/2013-04-09-yummy-cookies-across-domains/ )
2024-03-17 16:50:32 +00:00
* [**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities** ](https://www.youtube.com/watch?v=F\_wAzF4a7Xg )
2024-01-10 17:17:21 +00:00
< details >
2024-02-09 08:23:12 +00:00
< summary > < strong > ゼロからヒーローまでAWSハッキングを学ぶ< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE( HackTricks AWS Red Team Expert) < / strong > < / a > < strong > ! < / strong > < / summary >
2024-01-10 17:17:21 +00:00
2024-02-09 08:23:12 +00:00
HackTricksをサポートする他の方法:
2022-04-28 16:01:33 +00:00
2024-02-09 08:23:12 +00:00
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS& HackTricksグッズ** ](https://peass.creator-spring.com )を入手する
2024-03-17 16:50:32 +00:00
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見る
2024-04-04 08:57:58 +00:00
* **💬 [Discordグループ ](https://discord.gg/hRep4RUj7f )**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@carlospolopm** ](https://twitter.com/hacktricks\_live )**。**
* **ハッキングトリックを共有する**ために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する
2024-01-10 17:17:21 +00:00
< / details >