Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
APIHarvester — ワンショットAPI攻撃ツール - 指定されたルートからAPI URLを見つけ、自動攻撃をシミュレートします | Kitploit
ツール/GitHubGitHub/piratesshield/apiharvester
偵察脆弱性スキャナーウェブ脆弱性スキャナーDNSおよびサブドメイン列挙ウェブアプリケーション悪用APIセキュリティテスト情報収集ファジングペネトレーションテストシークレット検出クローラーAPIセキュリティ
32672ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
GitHubpiratesshield/apiharvester

APIHarvester

ワンショットAPI攻撃ツール - 指定されたルートからAPI URLを見つけ、自動攻撃をシミュレートします

リポジトリを見る
ChatGPT Image Jul 15, 2026, 10_14_08 AM

ApiHarvester

Pythonで書かれたフルパイプラインのブラックボックスAPIセキュリティスキャナー。エンドポイントの列挙、パラメータの特定、HTTPメソッドのプローブ、認証/認可ロジックのテスト、および標準的なOWASP API Top 10攻撃シミュレーション(BOLA、Broken Auth、BFLA、Mass Assignment、Rate Limiting、SSRF、Security Misconfigurationなど)を実行し、さらにOWASPカテゴリに依存しないクラッシュ/500エラーを追跡するRESTlerスタイルの信頼性ファザーも備えています。

すべてのコアスクリプトは**stdlib-only(標準ライブラリのみ)**で動作するように設計されています。外部ツールやライブラリがシステムに存在しない場合、apiharvesterは自動的に純粋なPython実装にフォールバックし、すぐに実行できることを保証します。


リポジトリ構造

  • apiharvester/ — メインのPythonパッケージディレクトリ。python3 -m apiharvesterとして実行します。
  • scripts/check_requirements.sh — バイナリとペイロードの前提条件を検証します。
  • scripts/install_requirements.sh — 必要なSecListsペイロードファイルをダウンロードし、オプションでバイナリをインストールします(go installおよびpip経由)。
  • apiharvester.py — スキャナーのスタンドアロン単一ファイル版。
  • api_deep_discovery.py — Katanaヘッドレスブラウザコードを使用した動的クローラーで、動的なSPA/XHRエンドポイントを発見します。
  • api_intelligence_engine.py — パイプラインアグリゲーターおよびパッシブ脆弱性分類器。
  • apisec.py — 代替の単一ファイルセキュリティスキャナー版。
  • requirements.txt — Python依存関係リスト(主にオプションのPythonベースアクセラレーター用)。
  • payloads/ — 偵察用のワードリストとペイロードファイル:
    • params.txt — APIエンドポイントテスト用の25,889個のパラメータ名候補
    • directories.txt — 62,281個の一般的なAPIパスパターンとディレクトリ名
    • subdomains.txt — API発見用の5,000個のサブドメインバリアント
    • kiterunner/ — エンドポイント列挙を高速化するKiterunnerルートスキーマファイル

インストールとセットアップ

  1. 要件の確認: 読み取り専用スクリプトを実行して、コアツール/ペイロードが利用可能か確認します:

    ./scripts/check_requirements.sh
    
  2. オプションツールとペイロードファイルのインストール: インストールスクリプトを実行して、SecListsのトップワードリスト、Kiterunnerルートスキーマを自動取得し、ツールアクセラレーターをインストールします:

    ./scripts/install_requirements.sh
    
  3. Pythonパッケージのインストール:

    pip3 install -r requirements.txt
    

使用方法

対象ドメインに対してスキャナーを直接実行します:

python3 -m apiharvester example.com \
    --auth "Bearer eyJ..." \
    --auth2 "Bearer eyJ_lowpriv..." \
    --threads 20 \
    --html report.html \
    --json findings.jsonl

コマンドラインオプション:

  • target (位置引数): スキャンするFQDNドメイン。
  • --auth: 認証済みチェック用の高権限アクセストークン(例: 有効なユーザーセッション)。
  • --auth2: BOLA / BFLA / クロスアカウント権限昇格テスト用の低権限アクセストークン。
  • --threads: スレッドプールサイズ(デフォルト: 20)。
  • --timeout: HTTPリクエストのタイムアウト秒数(デフォルト: 10)。
  • --burst: レート制限検証用の高速リクエスト数(デフォルト: 20)。
  • --json: JSONL形式のレポート(行区切りのJSON検出結果)を保存します。
  • --html: インタラクティブなHTMLダッシュボードレポートを保存します。
  • --output-dir: デフォルトの出力ディレクトリパスを上書きします(例: ./scans/example.com)。
  • --skip-recon: 偵察フェーズをスキップし、以前の実行で得た既存の出力ファイルを使用します。
  • --recon-dir: 既存の偵察出力ディレクトリを読み込み、攻撃フェーズのみを実行します。
  • --attacks-only: 攻撃フェーズのみを実行します(--skip-reconを暗黙的に含みます)。
  • --attacks: 実行する攻撃のカンマ区切りリスト。デフォルト: すべて。利用可能:
    bola,broken_auth,mass_assignment,rate_limit,bfla,business_logic,
    ssrf,misconfiguration,inventory,sspp,injection,reliability,secrets
    

攻撃モジュール

OWASP API Top 10 (API1–API10:2023):

  • API1: BOLA/IDOR (bola) — Broken Object-Level Authorization。オブジェクトIDエンドポイントをIDファジング(0、1、2、99、"admin"、"test"、UUIDバリアントなど)と差分認証トークンでテストします。
  • API2: Broken Auth (broken_auth) — 未認証エンドポイントの発見、JWT弱シークレットクラッキング、alg=noneバイパス、クレーム改ざん、kidインジェクション、さらにOPTIONS/HEADメソッドバイパス。
  • API3: Mass Assignment (mass_assignment) — PUT/PATCHボディへの権限昇格フィールドインジェクション(role、is_admin、verified、balanceなど)。
  • API4: Rate Limiting (rate_limit) — 20件以上の高速リクエストを送信し、429 Retry-Afterではなく200を返すエンドポイントをフラグします。
  • API5: BFLA (bfla) — Broken Function-Level Authorization。機密パス(/admin、/roles、/impersonateなど)を低権限トークンの有無でテストします。
  • API6: Business Logic (business_logic) — ワークフロー/状態機械の違反(例: 支払い後の注文更新)。
  • API7: SSRF (ssrf) — URLパラメータとリクエストボディを介したサーバーサイドリクエストフォージェリをテストします。
  • API8: Misconfiguration (misconfiguration) — CORS(アクティブ: 信頼できないOriginを送信)、セキュリティヘッダーの欠落、詳細なエラー、サーバーバナーの漏洩。
  • API9: Inventory (inventory) — 文書化されていないエンドポイント、放棄されたエンドポイント、露出した管理インターフェース。
  • API10: SSPP (sspp) — Unsafe Server-Side Post Processing(テンプレートインジェクション、XPathインジェクションなど)。

ボーナス攻撃:

  • Injection (injection) — SQLインジェクション、XSS、コマンドインジェクション(エラーベース + 時間ベースブラインド)。
  • Reliability (reliability) — RESTlerスタイルのファジング: 境界/不正入力テストで5xxクラッシュとサーバー信頼性バグを発見します(OWASPカテゴリに依存しません)。
  • Secrets (secrets) — レスポンスボディ内の漏洩した認証情報のパターンマッチング: AWS Access Keys、Google API Keys、Slack Tokens、Stripe Keys、GitHub Tokens、Private Key Blocks、JWTs、および一般的なシークレット代入(api_key=...、password=...など)。

スキャン例

認証済み + 低権限トークンを使用したフルスキャン(BOLA/BFLAに最適):

python3 -m apiharvester api.example.com \
    --auth "Bearer high_priv_token_here" \
    --auth2 "Bearer low_priv_token_here" \
    --html report.html \
    --json findings.jsonl

クイック偵察のみ(エンドポイントを発見、攻撃なし):

python3 -m apiharvester example.com --skip-recon --attacks ""

(または、一部の攻撃フェーズをスキップするには--authを指定しないだけです。)

保存された偵察データに対して攻撃のみを再実行(高速イテレーション):

python3 -m apiharvester example.com --recon-dir output/example.com_20260715_140233 --attacks-only

特定の攻撃のみを実行(例: BOLA + Secrets):

python3 -m apiharvester example.com --attacks bola,secrets

TLS証明書エラーをバイパス(企業プロキシ、ステージング環境):

# apiharvester uses a permissive TLS context by default — no extra flags needed
# All HTTPS endpoints work even with self-signed/intercepted certs
python3 -m apiharvester https://staging-api.example.com

出力ディレクトリ

すべてのスキャンは、攻撃フェーズが実行される前に、偵察成果物を構造化された出力ディレクトリに書き込みます。デフォルトでは次のとおりです:

output/{target}_{YYYYMMDD_HHMMSS}/

例: output/example.com_20260715_140233/。固定された予測可能なパスが必要な場合(スクリプト/CIに便利)は、--output-dir /path/to/dirで場所を上書きできます。

書き込まれるファイル

ファイル内容
fqdn.txt発見されたすべてのサブドメイン(1行に1つ)
fqdn_resolved.txt解決されたIPを持つサブドメイン — domain\tip1,ip2
fqdn_active.txt稼働中のHTTP(S)ホスト(完全なURL)
fqdnwithendpoint.txt発見されたすべてのエンドポイントURL
withparam.txt発見されたクエリパラメータを持つエンドポイント(完全なURLとして)
paramvalue.txt観測されたパラメータ値を持つエンドポイント(ライブプロービングから)
withtoken.txt--auth/--auth2で提供された認証トークン/JWT、およびレスポンスから収集されたもの
objectshape.txtエンドポイントごとのレスポンスJSONフィールド名 — url\tfield1,field2
waf_results.jsonl検出されたWAF/キャッチオール/JSチャレンジを持つホストごとに1つのJSONオブジェクト
endpoint_methods.jsonl許可されたHTTPメソッドをリストするエンドポイントごとに1つのJSONオブジェクト
swagger_specs/*.json発見されたOpenAPI/Swaggerスペック(ホストごとに1ファイル)

すべてプレーンテキスト(1行に1エントリ)またはJSONLなので、grep、jq、パイプがきれいに機能します。

出力ディレクトリの再利用

既存の偵察データに対して攻撃フェーズのみを再実行し、サブドメイン発見/クロールなどをスキップします:

python3 -m apiharvester example.com --recon-dir output/example.com_20260715_140233 --attacks-only

--attacks-onlyは--skip-reconを暗黙的に含み、fqdn_active.txt、fqdnwithendpoint.txt、withparam.txt、withtoken.txt、swagger_specs/、waf_results.jsonlをスキャンコンテキストに読み戻します。

偵察ファイルを他のツールに渡す:

# httpx re-probe
httpx -l output/example.com_*/fqdn_active.txt

# nuclei against discovered endpoints
nuclei -l output/example.com_*/fqdnwithendpoint.txt

# ffuf using discovered params as a wordlist seed
cut -d'?' -f2 output/example.com_*/withparam.txt | tr '&' '\n' | cut -d= -f1 | sort -u

# jq over per-host WAF results
jq -r 'select(.waf_vendor != "none") | .domain' output/example.com_*/waf_results.jsonl

すべてのファイルが行区切りのプレーンテキストまたはJSONLであるため、出力ディレクトリは、grep、jq、httpx、nuclei、ffuf、またはパイプライン内のその他のツールに渡すことができるポータブルな偵察データセットとしても機能します — apiharvester専用のパーサーは不要です。


ペイロードファイル

apiharvesterは、包括的なAPI発見とテストのために、SecListsとKiterunnerの高品質なワードリストとルートスキーマを使用します:

  • params.txt (25,889エントリ) — 一般的なAPIパラメータ名(例: api_key、user_id、token)。パラメータ発見フェーズで潜在的な入力ポイントを特定するために使用されます。

  • directories.txt (62,281エントリ) — APIエンドポイントパスとディレクトリパターン(例: /api/v1/、/admin/、/internal/)。パス列挙とSoft-404検出に使用されます。

  • subdomains.txt (5,000エントリ) — サブドメインプレフィックスとバリアント(例: api、api-v2、staging-api)。サブドメイン全体で追加のAPIサーフェスを特定するために使用されます。

  • kiterunner/ — 迅速なルート発見と検証のためのKiterunner形式のOpenAPIルートスキーマ。外部スキーマが利用可能な場合にエンドポイントマッピングを高速化します。

ツールをダウンロード