Uncovering Vulnerabilities Through Swagger UI Directory Enumeration から学ぶ

ソース:

hackersatty.medium.com

脆弱性API

 

内容:

ツールと自動化は私たちを遠くまで連れて行ってくれますが、大規模な脆弱性が隠れている見落とされている領域の 1 つは、 Swagger UI とそのディレクトリで。

Swagger UI は API の視覚化と操作に広く使用されていますが、開発者がそれを誤って構成したり、気付かないうちに機密エンドポイントを公開したりすることがよくあり。
Swagger UI のディレクトリ列挙をマスターすることで、他の人が見落としていた影響の大きいバグをいくつか発見して。

Swagger UI とは何ですか?

Swagger UI は、開発者が REST API を設計、構築、文書化するのに役立つオープンソースAPI ドキュメント ツールで。
通常、テストとデバッグの目的でエンドポイントを公開して。
開発者にとっては便利ですが、 Swagger UI の構成が誤っている と、隠しディレクトリ、エンドポイント、パラメータなどの機密情報が漏洩する可能性があって。

注意すべき理由は次のとおりで。

  • 機密性の高いエンドポイントの多くは 、公開されたままになることがよく。
  • Swagger UI は 内部 API または構成を漏洩する可能性があり。
  • これは、アプリケーションの攻撃対象領域をマッピングするのに役立ちます
  • テストは簡単ですが、設定を誤るとセキュリティを確保するのは困難で。

wagger UI 列挙テクニック

プロのようにディレクトリを抽出して列挙する方法は次のとおりです。
これらの方法は、私自身の発見と現実世界のバグに基づいています。

1. Swagger UI ファイルを見つける

まず、Swagger ファイルがホストされている場所を特定し。
確認すべき一般的な Swagger UI URL は次のとおりで。

https://example.com/swagger.json 
https://example.com/swagger/v1/swagger.json
https://example.com/api/swagger.json
https://example.com/api-docs
https://example.com/swagger-ui.html
  • Gau、Wayback Machine Google Dorks などのツールを使用します
  • inurl:swagger.json site:example.com
  • intitle:"Swagger UI" inurl:/api-docs

 

2.Swagger JSON ファイルを分析する

swagger.json ファイルにアクセスできるようになると、ダウンロードし、ディレクトリとエンドポイントを検索します。
探す:

  • 隠しパス (例: /admin, /internal, /debug, /v2/api)
  • 非推奨のエンドポイント
  • 機密パラメータ (API キー、トークンなど)

例:

  • "paths": {
  •     "/admin/debug": {
  •         "get": {
  •             "description": "Access debug info"
  •         }
  •     },
  •     "/internal/config": {
  •         "post": {
  •             "description": "Post internal configurations"
  •         }
  •     }
  • }

 

3. 構成ミスがないかテストする

ディレクトリをマッピングしたら、次のような脆弱性をテストします。

  • 認証が壊れた 場合: /admin または /internal パスには資格情報なしでアクセスできます。
  • 機密データの公開 : 内部構成、デバッグ ログ、または認証情報を公開するディレクトリ。
  • IDOR : 操作されている可能性のあるオブジェクト ID またはユーザー固有のエンドポイントを探します。

4. ディレクトリ列挙の自動化

速度と効率を高めるには、テストを自動化します。

  • 使用します 次のようなツールを ffuf または、 カスタム スクリプト Swagger ファイルから抽出されたディレクトリをブルート フォース攻撃するための
  • 例:

 

  • と組み合わせると Burp Suite 、より詳細な API 分析が可能になります。

現実世界の調査結果

Swagger の列挙を通じて私が発見したいくつかのバグを次に示します。

  1. 保護されていない管理エンドポイント : アクセス /admin/debug サーバーログが流出。
  2. 機密データの漏洩 : Swagger JSON により、クエリ パラメーターにハードコードされた API キーが明らかになりました。
  3. 非表示の API : 非推奨 /internal/config エンドポイントにより権限昇格が発生しました。

従来のスキャナでは Swagger ファイルを徹底的に分析していなかったため、これらの問題は見逃されていました。

Swagger 列挙を最大限に活用するためのヒント

  1. 常にチェックする /swagger.json そして /api-docs エンドポイント用。
  2. 自動化する前に手動分析を使用してください。 これは、微妙な構成ミスを検出するのに役立ちます。
  3. 古いエンドポイントまたは非推奨のエンドポイントを検索します。 開発者はそれらを削除するのを忘れることがよくあります。
  4. すべてのパラメータを徹底的にテストします。 インジェクション、認証の欠陥、または IDOR がないか
  5. 明確な POC を使用してバグを報告します。 列挙手順と影響を示す

誤って構成された Swagger UI の影響

Swagger UI の構成に誤りがあると、 重大なセキュリティ リスク が発生する可能性があります。

  • 情報漏洩 : 機密ディレクトリ、資格情報、およびサーバー情報の漏洩。
  • 不正アクセス : 認証なしで内部 API または管理 API にアクセスします。
  • 権限昇格 : 重要なアクションを可能にする非表示のエンドポイント。
  • サービスの中断 : サーバーの脆弱性を明らかにする APIデバッグします。

 

ほなほな。