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デバッグします。

 

ほなほな。

PentesterLab をやってみた

ブラックフライデーで年間のサブスク費用がお安くなっていたので、PentesterLabを始めてみました。

 

pentesterlab.com

Pro版の割引は終わっていますが、無料でもいくつかチャレンジはできるのでまずは会員登録が良いかと。

 

自分はAPI とその他幾つか苦手な脆弱性の勉強にと思いました。

他にもTSMやNahamsec など迷いましたが、内容が充実してるのでこちらにしました。

 

復習もかねて、手始めにUNIXの問題(全35題)から取り組んでいるのですが、中々勉強になり。
久々にMysql に触ってみたり面白そうです。

 

問題数も多いので、目的に応じて問題をチョイスしていくのが良さそうです。

 

OSINT:専用OSの利用について

OSINTを行うにあたり、クリーンマシンの用意ができたとし。
ソフトウェアやブラウザ、拡張機能などはおいといて。

次に想環境をホストマシンに構築し。
VirtualBoxなりUTM、VMWareなど導入したと仮定して次にOSのインストールが必要になります。

 

OSINT調査を行うOSも専用のOSがあって。

その専用のOSを使うには以下のメリットがあると考えられます。

 

・セキュリティと匿名性

 OSINT専用のOSを使うと、匿名化ツールが事前に組み込まれています。
 調査者のIPアドレスや調査活動が追跡されるリスクを軽減できます。

 

・ホスト環境を保護

 ホストPCのデータや設定が調査対象のウェブサイトや悪意のあるスクリプトからの影響を軽減できます。

 

・安全なデータ収集

 暗号化ツールが予め搭載されており、収集したデータや証拠を安全に保存できます。

 

・プリインストールされたツールセット

 OSINTでよく使われる専用のツールが一括で準備されています。

 また、ツールが統合されているため、複数のプラットフォーム間でのデータのやり取りが不要です。

 それぞれのOSは特定のニーズに応じてカスタマイズされています。

 

・時間の効率化

 セットアップ時間を短縮できます。

 OS内で必要なツールが全て動作するので、複数のOSや環境を切り替える必要がありません。

 

・デジタルフォレンジックと法的調査への適合

 CSI Linux のようなOSには、デジタルフォレンジックツールが統合されており、収集した証拠を法的に使用可能な形式で保存する機能があります。

 また、タイムスタンプや操作ログを記録できる機能もあり、調査の透明性を保てます。

 

・コスト効率

 OSINT用ディストリビューションは無料で利用が可能。

 

OSINT専用OSとしては、以下をあげました。

 

CSI Linux

②Buscador

③Trace Labs

 

ほなほな。