7.3 KiB
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ会社で働いていますか? HackTricksで会社を宣伝したいですか?または、最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
独占的なNFTのコレクションであるThe PEASS Familyを発見してください。
-
公式のPEASS&HackTricksのグッズを手に入れましょう。
-
💬 Discordグループに参加するか、telegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
-
ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリにPRを提出してください。
説明
もし攻撃者が企業のサブドメインまたはドメインを制御できるか、サブドメインでXSSを見つけることができれば、この攻撃を実行することができます。
Cookieハッキングのセクションで示されているように、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の順序
ブラウザが同じ名前の2つのcookieを受け取った場合、同じスコープ(ドメイン、サブドメイン、パス)に部分的に影響を与える場合、ブラウザは両方のcookieの値を送信します。
最も具体的なパスを持つものまたは最も古いものによって、ブラウザは最初にcookieの値を設定し、その後に他のcookieの値を設定します。例:Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;
ほとんどのウェブサイトは最初の値のみを使用します。したがって、攻撃者がcookieを設定する場合は、他のcookieが設定される前に設定するか、より具体的なパスで設定する方が良いです。
{% hint style="warning" %} さらに、より具体的なパスでcookieを設定できる能力は非常に興味深いです。これにより、被害者は自分のcookieで作業できるようになりますが、悪意のあるcookieが送信されるパスでは、そのcookieが先に送信されます。 {% endhint %}
保護のバイパス
この攻撃に対する可能な保護策は、ウェブサーバーが2つの異なる値を持つ同じ名前のcookieを受け入れないようにすることです。
攻撃者が被害者にすでにcookieが与えられた後にcookieを設定しているシナリオをバイパスするために、攻撃者はcookieオーバーフローを引き起こし、その後、正規のcookieが削除された後に悪意のあるcookieを設定することができます。
{% content-ref url="cookie-jar-overflow.md" %} cookie-jar-overflow.md {% endcontent-ref %}
また、バイパスに役立つもう1つの方法は、cookieの名前をURLエンコードすることです。一部の保護は、リクエスト内の同じ名前の2つのcookieをチェックし、サーバーがcookieの名前をデコードするため、名前のエンコードをチェックします。
Cookie Bomb
Cookie Tossing攻撃は、Cookie Bomb攻撃を実行するためにも使用できます:
{% content-ref url="cookie-bomb.md" %} cookie-bomb.md {% endcontent-ref %}
防御策
cookie名に接頭辞__Host
を使用する
- cookie名にこの接頭辞がある場合、それはSecureにマークされ、セキュアなオリジンから送信され、Domain属性を含まず、Path属性が/に設定されている場合にのみ、Set-Cookieディレクティブで受け入れられます。
- これにより、サブドメインがcookieをapexドメインに強制することができなくなります。これらのcookieは「ドメインロックされた」と見なされる可能性があります。
参考文献
- @blueminimal
- [https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers](https://speakerdeck.com/filedescriptor/the-cookie-mon
-
💬 Discordグループに参加するか、テレグラムグループに参加するか、Twitterで私をフォローしてください🐦@carlospolopm。
-
ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリにPRを提出してください。