Hello there, ('ω')ノ
最初に見つけたサブドメイン乗っ取りの脆弱性についてを。
脆弱性:
Subdomain takeover
CSRF
記事:
脆弱性について:
初めての脆弱性を新入りのセキュリティ研究者として見つけることは、
特にどこから始めれば良いのかわからないときは非常に挑戦的で、
簡単に疲れ果ててしまい。
サブドメイン乗っ取りの脆弱性をどのように見つけ、それをCSRF攻撃に
どのように活用して被害者のアカウントを乗っ取ることができたかについて、
以下に詳しく説明して。
報告 - サブドメイン乗っ取り + CSRF
範囲: その他/サブドメイン乗っ取り
プログラム: プライベート
プラットフォーム: Intigriti
支払額: €375
解決日: 06/07/2021
重要度: 高
偵察:
偵察の最初のステップは、範囲内のマスタードメインのすべてのサブドメインを
列挙することで。
プログラムがワイルドカードドメイン名を許可しているかどうかを
常に確認したく。
それにより、サブドメインの乗っ取りが有効なレポートとして
扱われるようになり。
例として、プログラムは.example.comを含むべきで。
Subfinderというツールを使用して、ターゲットのすべてのサブドメインを
列挙して。
これは一貫した結果を出し。
オンラインツールを好む場合は、VirustotalやSpyseを試してみて。
スキャンの結果、175の列挙されたサブドメインが返され。
これらのサブドメインをスキャンして、404のレスポンスを返すものを
確認する時間で。
これは、これらのサブドメインが潜在的に利用可能であることを意味して。
MedicまたはHTTPStatusを使用し。
https://github.com/Rowno/medic#readme
そうすると、175のうち12のサブドメインが返され。
次に、これらのサブドメインのどれがサブドメイン乗っ取りに脆弱であるかを
確認する時間で。
これを行うために、各サブドメインを訪れ、各接続サービスが
返すエラーメッセージを調査して。
404ページはこの攻撃の物語を伝えていて。
Live OverflowのEdが維持しているリポジトリを使用して。
それは「Can I Take Over XYZ」と呼ばれており、それらの対応する
エラーメッセージとそれらが脆弱であるかどうかのリストを持っている
第三者サービスのリストがあり。
https://github.com/EdOverflow/can-i-take-over-xyz
リストを見る前に、指定されたサブドメインに死んだ第三者サービスページを
指しているCNAMEレコードがあるかどうかを最初に確認する必要があり。
explore.*********.comは以下のようにNetlify DNSサーバを指していて。
Netlifyは、サブドメインの乗っ取りの問題をしばらく前に修正していて。
これは、彼らが現在、ウェブサイトへの所有権を確認し、Netlifyのサイト名に
ランダムな番号を自動的に追加してそれらをユニークにすることを意味していて。
しかし、このケースでは、ユニークな番号はなく。
新しいNetlifyサイトを作成し、このサブドメインを私のNetlifyサイトに
アタッチすることができて。
自分のコンテンツは今、explore.*********.comで提供されていて。
サブドメイン乗っ取りのPoCを作成する際に覚えておくべきこと:
- PoCをサブドメインのインデックスで提供しないで。
PoCを予測不可能なファイル名に隠して。
このケースでは、```oc-2bdg3erf2i6td.html```を使用して。
- ログインページはなく。
Pocとして会社のログインページを再作成しようとしないで。
それは問題を引き起こして。
- おかしなことはしないで。
PoCメッセージは最小限にし、メームやGIFは使わないで。
乗っ取りをCSRF攻撃に活用:
今、このサブドメインを乗っ取ったので、次は何か。
もしこれをすぐに会社に報告しに行った場合、報告は、機密性の喪失がないため、
低い重要度としてマークされる可能性が高く。
代わりに、攻撃者のように考えて、攻撃者がこれをどのように活用して
利益を得るか、およびあなたのアカウントをどのように乗っ取るかについて
考える必要があり。
CORSは、攻撃者が現在CSRF(クロスサイトリクエストフォージェリ)攻撃を
行う最も簡単な方法で。
これは何を意味するか。
CORSは、不正なウェブサイトが被害者を代表してウェブサイトにリクエストを
送信し、情報を盗んだり/データを変更したりするのを防ぐための
ウェブメカニズムで。
この特定のケースでは、プログラムのホストのCORSヘッダには
サブドメインのワイルドカード ```*.programhost.com``` があり。
これは何を意味するか。
これは、このウェブサイトが、そのサブドメインからのクロスサイトリクエストを
許可し、そのリソースへの完全なアクセスを許可したことを意味して。
さて、質問は、攻撃者がこれをどのように使用するか、になり。
攻撃者は、会社のログインページを再作成し、被害者を誘引し、
クレデンシャルを使用してログインさせ、アプリケーションの
ログインエンドポイントへのリクエストを行って(CORSポリシーのおかげで)。
そして、サーバーが返すすべてのクッキーを盗み取り
(クッキーはなく)、クレジットカード情報を盗み取り、ユーザーとして
行うことができることを何でも行い、攻撃者は今、マルウェア/スクリプトを
返すかもしれず。
これは、メインホストのエンドポイントの1つにリクエストを送信して
確認され。
結果として、以下のヘッダーを取得して。
access-control-allow-origin: https://explore.******.com
これは、メインホストがこのリクエストを通過させることを許可したことを
確認して。
サブドメイン乗っ取りの影響:
1.会社をさまざまな誤った方法で代表
2.XSS攻撃
3.認証バイパス
4.フィッシング/スピアフィッシング
Best regards, (^^ゞ