Bug Bounty { How I found an SSRF ( Reconnaissance ) } から学ぶ

ソース:

systemweakness.com

脆弱性:SSRF

 

訳:

今日は、私が最近発見した内部ポート スキャンに対するサーバーサイド リクエスト フォージェリ (SSRF) について説明し。

SSRFとは何ですか?

サーバー側リクエスト フォージェリ (SSRF とも呼ばれる) は Web セキュリティの脆弱性であり、攻撃者がサーバー側アプリケーションに、攻撃者が選択した任意のドメインへの HTTP リクエストを実行させることを可能にして。
典型的な SSRF の例では、攻撃者は、サーバーがそれ自体、組織のインフラストラクチャ内の他の Web ベース サービス、または外部のサードパーティ システムに接続を確立する可能性があり。
SSRF 攻撃は多くの場合、信頼関係を悪用して脆弱なアプリケーションから攻撃をエスカレートし、不正なアクションを実行し。
これらの信頼関係は、サーバー自体に関連して、または同じ組織内の他のバックエンド システムに関連して存在する場合があり。

 

WaybackURLs (ウェイバック マシン) とは何ですか?

セキュリティ テストにおける Web クローリングは、自動化されたスクリプトまたはクローリング プログラムを使用して Web ページ上のデータにインデックスを付けるプロセスであるため、重要な側面です。 これらのスクリプトまたはクローリング プログラムは、Web クローラー、スパイダー、スパイダー ボット、およびクローラーと呼ばれます。 

 

Google Dorks からバグ報奨金プログラムを選択し。
責任ある開示ポリシーにより、プログラムを開示することはできません。
このドメインを target.com と呼びます。 

 

Subfinder を使用してサブドメインを列挙し、出力をdomains.txtに保存し。
その後 httprobe を実行してライブドメインを取得、出力をlive_domains.txt に保存して。

subfinder -d target.com > domains.txt

cat domains.txt | httprobe > live_domains.txt

 

次のコマンドを実行して、waybackurls を通じて Web クローリングURLを収集。

 

cat live_domains.txt | waybackurls > urls.txt

 

urls.txt 内のすべての URL を収集したら、 httpx を実行してステータス、タイトル、技術などを特定し、出力を status.txt に保存し。

 

cat urls.txt | httpx — status-code-title > status.txt

 

これで、ライブでアクセス可能なすべての URL が並べ替えられ、機能しない URL がすべて削除され。

status.txt を開いて、機密情報、パラメータ、ユーザー名、パスワード、トークン、機密ファイルなどを探し始め。

 

Keywords I used : password, username, mail.com, token, access_token, url=, redirect_url=, api, id=, accessUrl=, payment, etc.

 

30 分間クロールして並べ替えた後、次のような興味深い URL を 1 つ取得し。

 

https://subdomain.target.com/webinar/?roomId=1ec1f5d8-0887-4fbb-a3dc-1b9f94bc04dc&displayName=mack&accessToken=sda3-q23aed-aerae&peerId=123123-321as-waaew-ads&apiEvent=https://example.com/ api/meet&accessUrl=https://example.com/api/accessCheck/&itisparticipant=true&nameScreenDisabled=true&startWithFS=true&controlsDisabled=true  

 

私の注意はパラメータ「 apiEvent 」と「 accessUrl 」に引き寄せられました。 

 

これで、パラメータのURLをBurp Collabortorサーバーに置き換えました。

burpコラボサーバーに置き換えた後のURLは以下のようになります。

 

https://subdomain.target.com/webinar/?roomId=1ec1f5d8-0887-4fbb-a3dc-1b9f94bc04dc&displayName=Tom&accessToken=sda3-q23aed-aerae&peerId=123123-321as-waaew-ads&apiEvent=https://rni1e5x29hzirz847fkvnolaf1lr9g.burpcollaborator.net/api/meet&accessUrl=https://rni1e5x29hzirz847fkvnolaf1lr9g.burpcollaborator.net/api/accessCheck/&itisparticipant=true&nameScreenDisabled=true&startWithFS=true&controlsDisabled=true

 

ブラウザで URL を開くと、コラボレーター サーバー上の DNS と HTTP が内部 IP で取得されました。

今、私は Whois を実行して、この IP アドレスが組織のものなのかサードパーティのものなのかを確認し。

 

取得した IP が組織の内部 IP であるという確認を得て。

 

影響を大きくするために、私はバープスイートを起動し、


1. バープスイートで同じリクエストをキャプチャしました
2. それを侵入者に送信しました 
3. ピッチフォーク攻撃タイプを選択
4. 2 つの URL の末尾に位置ペイロードを追加
5. ループ リクエストを 100 に設定
6. 攻撃を開始
7. http、dnssmtp リクエストを取得

 

step1

 

step2, 3, 4

 

step4, 5

 

step6

 

step7

 

これで、Burp コラボ サーバーで DNS リクエストと HTTP リクエスト、および SMTP リクエストを受信し、SSRF 脆弱性を使用して内部ポート スキャンを実行できたことが確認されて。

 

 

ほなほな。