ソース:
訳:
テストはブラック ボックスであり、顧客から提供される情報はゼロです。
私たちが知っている唯一のことは、example.com と任意のサブドメイン (*.example.com) をテストできるということです。
パート 1: 初期の列挙
興味深いサブドメインを見つけたら、すぐ に起動するツールがdirsearch です。
これは、ディレクトリ総当たり攻撃に使用するお気に入りのツールの 1 つです 。
信じられないほど高速で、非常に優れた単語リストを使用しているため、労力をかけずに、またはほとんど努力せずにすぐに成功を収めることができます。
ページを見つけるのに役立ちましたが この場合、 /info または /info.php 、phpinfo() は表示されず、アプリケーション内の実際のユーザー名とその UID が表示されました。
パート 2: さらなる列挙
最初の情報を発見するとすぐに、アプリケーションがこれを使用する方法を探し始めます。
これは通常、 基本的なソース コード レビュー によって行われます(特にコードが縮小/難読化されていない場合)。
この場合、Web サイト全体を参照するだけで、 Burp Suite は すべてのJavaScriptファイルを見つけることができました。
情報収集には以下の2つの拡張機能を使用しています。
- JS マイナー : https://portswigger.net/bappstore/0ab7a94d8e11449daaf0fb387431225b
- JS リンク ファインダー : https://portswigger.net/bappstore/0e61c786db0c4ac787a08c4516d52ccf
これらは、次のような情報を見つけるのに役立ちます 。
- API endpoints
- Dependencies
- Secrets/Credentials
- Subdomains
- Cloud URLs
- And so many more
JS Miner を有効にし、Web サイト全体をナビゲートすると、次の API エンドポイント を見つけることができました。
スクリーンショットには表示されていませんが、API エンドポイントは 引数 の 各ユーザーを検索するためにUID を受け取り、次の URL が得られます。
https://get.example.com/admin/api/v1/check?uid=:uid
パート 3: API の設定ミスによる情報漏洩の連鎖
ここで、ユーザーの情報を取得できるかどうかを確認することにしたので、前に見つけた UID の 1 つを使用してテストしてみました。
API には認証は必要ありません。 非常に少数の API、特に管理 API ではこれを必要としないため、これは幸運でした。
各ユーザーの氏名、生年月日、現住所、身分証明書、メールアドレス、電話番号などを漏洩することができました。 怖いですよね?
影響を完全に示すために、すべてのユーザー ID を取得し、それらを 1 つにするよう要求し、それらを CSV 形式で保存する基本的な概念実証の Python スクリプトを作成しました。
その結果、次のようになります。
ほなほな。