
BlackHat Arsenal 2024 で発表 (Link)
/swagger-ui/index.html エンドポイントに対してのみ概念実証を生成APIDetector v3 には Python 3.x と以下のパッケージが必要です:
flask # Web フレームワーク
requests # HTTP クライアント
playwright # スクリーンショット用ブラウザ自動化
nest_asyncio # Async IO サポート
すべての依存関係は requirements.txt に記載されており、セットアップ時に自動的にインストールされます。
必要なパッケージをインストールした後、Playwright ブラウザをインストールする必要があります:
python -m playwright install
これはスクリーンショット機能を正しく動作させるために必要です。
git clone https://github.com/brinhosa/apidetector.git
cd apidetector
# macOS/Linux の場合:
python3 -m venv venv
source venv/bin/activate
# Windows の場合:
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
playwright install
python app.py
python app.py --port 8080 --host 0.0.0.0
ブラウザを開き、ターミナルに表示された URL にアクセスします。
Web インターフェースの使い方:
スクリーンショットは後で参照できるよう screenshots ディレクトリに保存されます。
APIDetector v3 では、最新の Web インターフェース(v3 の新機能)と従来のコマンドラインインターフェース(オリジナル)の 2 つの操作方法を提供しています。
python app.py [options]
使用可能なオプション:
例:
# デフォルト設定で実行 (localhost:5000)
python app.py
# カスタムポートで実行
python app.py -p 8080
# 外部アクセスを許可
python app.py --host 0.0.0.0
# デバッグモードで実行
python app.py -d
Web インターフェースにアクセス:
結果を表示:
コマンドラインで APIDetector を実行します。以下に使用例を示します:
一般的な使用方法: 30 スレッド、Chrome ユーザーエージェントでサブドメインリストをスキャンし、結果をファイルに保存:
python apidetector.py -i list_of_company_subdomains.txt -o results_file.txt -t 30 -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
単一ドメインのスキャン:
python apidetector.py -d example.com
ファイルから複数ドメインをスキャン:
python apidetector.py -i input_file.txt
出力ファイルを指定:
python apidetector.py -i input_file.txt -o output_file.txt
特定のスレッド数を使用:
python apidetector.py -i input_file.txt -t 20
HTTP と HTTPS の両方のプロトコルでスキャン:
python apidetector.py -m -d example.com
静音モードで実行(詳細出力を抑制):
python apidetector.py -q -d example.com
カスタムユーザーエージェントで実行:
python apidetector.py -d example.com -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
APIDetector v2 を使用している場合は、コマンドを apidetectorv2.py に置き換えてください。
-d, --domain: テストする単一のドメイン。-i, --input: テストするサブドメインを含む入力ファイル。-o, --output: 有効な URL を書き込む出力ファイル。-t, --threads: スキャンに使用するスレッド数(デフォルトは 10)。-m, --mixed-mode: HTTP と HTTPS の両方のプロトコルをテスト。-q, --quiet: 詳細出力を無効にする(デフォルトモードは詳細)。-ua, --user-agent: リクエストのカスタム User-Agent 文字列。Swagger や OpenAPI のドキュメントエンドポイントを公開すると、主に情報漏洩に関連するさまざまなリスクが生じる可能性があります。以下は、潜在的なリスクレベルに基づいて並べたリストで、類似のエンドポイントを APIDetector がスキャンするグループとしてまとめています。
'/swagger-ui.html', '/swagger-ui/', '/swagger-ui/index.html', '/api/swagger-ui.html', '/documentation/swagger-ui.html', '/swagger/index.html', '/api/docs', '/docs', '/api/swagger-ui', '/documentation/swagger-ui''/openapi.json', '/swagger.json', '/api/swagger.json', '/swagger.yaml', '/swagger.yml', '/api/swagger.yaml', '/api/swagger.yml', '/api.json', '/api.yaml', '/api.yml', '/documentation/swagger.json', '/documentation/swagger.yaml', '/documentation/swagger.yml''/v2/api-docs', '/v3/api-docs', '/api/v2/swagger.json', '/api/v3/swagger.json', '/api/v1/documentation', '/api/v2/documentation', '/api/v3/documentation', '/api/v1/api-docs', '/api/v2/api-docs', '/api/v3/api-docs', '/swagger/v2/api-docs', '/swagger/v3/api-docs', '/swagger-ui.html/v2/api-docs', '/swagger-ui.html/v3/api-docs', , '/swagger-resources', '/swagger-resources/configuration/ui', '/swagger-resources/configuration/security', '/api/swagger-resources', '/api.html'APIDetector へのコントリビューションを歓迎します! リポジトリをフォークし、変更を加え、プルリクエストを送信してください。 テストや機能提案に協力してくれたコントリビューターに特別な感謝を捧げます:
APIDetector ツールは、厳密にテストおよび教育目的のみを意図しています。APIDetector の開発者は、このツールの使用に起因する誤用、意図しない結果、または損害について一切の責任を負わず、免責します。APIDetector の不正、違法、または有害な使用は明示的に禁止されています。エンドユーザーは、関連するすべての地域、州、連邦、国際法の遵守について全責任を負います。このツールを使用することにより、ユーザーはスキャン対象のネットワークまたはシステムをテストするために必要な権限を有していることを確認し、その使用に起因するすべての請求から開発者を補償することに同意したものとみなされます。 エンドユーザーは、このツールの使用がテスト対象のネットワークまたはシステムを管理する法的制限や利用規約に違反していないことを確認する単独の責任を負います。
免責事項: APIDetector ツールの使用について APIDetector ツールは、合法的なテストおよび教育目的のためにのみ設計されています。明示的または黙示的な種類の保証なしに「現状のまま」提供されます。APIDetector の開発者および配布者は、このツールの使用に起因する誤用、意図しない結果、または損害について一切の責任を明示的に否認します。 重要な法的通知: APIDetector の不正、違法、または非倫理的な使用は固く禁じられています。ユーザーは、関連するすべての地域、州、連邦、国際法、およびエンゲージするネットワークまたはシステムを管理する利用規約を遵守する単独の責任を負います。APIDetector を使用することにより、ユーザーは対象のネットワークまたはシステムをテストするために必要な権限を有していることを確認します。 リスクの想定と補償: APIDetector をダウンロード、インストール、または使用することにより、ユーザーはその使用に関連するすべての法的影響に対する全責任を負います。APIDetector の開発者および配布者は、その使用に起因する法的結果、損害、または第三者からの請求について一切の責任を負いません。ユーザーは、自身の行為に起因するすべての請求、弁護士費用、または責任から開発者および配布者を補償し免責することに同意します。
このプロジェクトは MIT ライセンス の下でライセンスされています。
| オプション | 説明 | デフォルト |
|---|
-p, --port | ポート番号 | 5000 |
--host | ホストアドレス | 127.0.0.1 |
-d, --debug | デバッグモードを有効にする | False |
'/api/swagger/v2/api-docs''/api/swagger/v3/api-docs'