Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
VAmPI — セキュリティテスト用のOWASP Top 10脆弱性を含む脆弱なREST API | Kitploit
ツール/GitHubGitHub/erev0s/vampi
ウェブ脆弱性スキャナー脆弱性分析APIセキュリティテスト学習と教育ラボと実践
GitHuberev0s/vampi

VAmPI

セキュリティテスト用のOWASP Top 10脆弱性を含む脆弱なREST API

リポジトリを見る
1.3k58045ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

VAmPI

脆弱なAPI (OpenAPI 3 ベース) vampi

Docker Image CI Docker Pulls

VAmPIはFlaskで作られた脆弱なAPIであり、API向けのOWASP Top 10の脆弱性を含んでいます。APIのセキュリティ問題を検出するためのツールの効率を評価するために、脆弱なAPIが必要だったことから作成されました。テスト中にAPIを脆弱にするかどうかを切り替えるオン/オフスイッチが含まれています。これにより、偽陽性/偽陰性のケースをより適切にカバーできます。VAmPIは学習/教育目的にも使用できます。脆弱性の詳細については、erev0s.comをご覧ください。

特徴

  • API向けOWASP Top 10脆弱性に基づく。
  • OpenAPI3仕様とPostmanコレクションを含む。
  • 脆弱な環境にするかどうかをグローバルに切り替え可能。
  • トークンベースの認証(app.py内で有効期間を調整可能)
  • APIと直接対話できるSwagger UIが利用可能

VAmPIのアクションフローは次のとおりです。未登録ユーザーはAPIに含まれるダミーユーザーの最小限の情報を表示できます。ユーザーは登録後、ログインして、ログイン時に受け取ったトークンを使用して本を投稿できるようになります。投稿された本に対して受け付けられるデータは、タイトルとその本に関する秘密です。各本はユーザーごとに一意であり、本の所有者のみが秘密を閲覧できるべきです。

アクションの概要を次の表に示します。

アクションパス詳細
GET/createdbダミーデータでデータベースを作成して投入
GET/VAmPIホーム
GET/meログイン中のユーザーを表示
GET/users/v1すべてのユーザーを基本情報とともに表示
GET/users/v1/_debugすべてのユーザーの詳細情報を表示
POST/users/v1/register新しいユーザーを登録
POST/users/v1/loginVAmPIにログイン
GET/users/v1/{username}ユーザー名でユーザーを表示
DELETE/users/v1/{username}ユーザー名でユーザーを削除(管理者のみ)
PUT/users/v1/{username}/email単一ユーザーのメールを更新
PUT/users/v1/{username}/passwordユーザーのパスワードを更新
GET/books/v1すべての本を取得
POST/books/v1新しい本を追加
GET/books/v1/{book}タイトルと秘密を含む本を取得

詳細については、VAmPIを実行して http://127.0.0.1:5000/ui/ にアクセスするか、swagger editor などのサービスを使用して、openapi_specs ディレクトリにあるOpenAPI仕様を提供してください。

脆弱性一覧

  • SQLiインジェクション
  • 不正なパスワード変更
  • 壊れたオブジェクトレベル認可
  • マスアサインメント
  • デバッグエンドポイントによる過剰なデータ露出
  • ユーザーとパスワードの列挙
  • RegexDOS(サービス拒否)
  • リソース不足とレート制限の欠如
  • 弱い署名鍵によるJWT認証バイパス

実行方法

これはFlaskアプリケーションなので、実行するにはすべての要件をインストールしてから app.py を実行します。 すべての要件をインストールするには、pip3 install -r requirements.txt を実行し、次に python3 app.py を実行します。

または、DockerやDocker Composeを使用して実行することもできます。

Dockerで実行する

  • Dockerhubで利用可能
root@kitploit:~
docker run -p 5000:5000 erev0s/vampi:latest

[注意: MacOSの新しいバージョンでDockerを実行する場合、AirPlay Receiverサービスとの競合を避けるために、-p 5001:5000 を使用してください。または、システム環境設定 -> 共有設定でAirPlay Receiverサービスを無効にすることもできます。]

Docker Composeで実行する

docker-composeには2つのインスタンスが含まれており、一方はポート5001で安全な構成、もう一方はポート5002で不安全な構成です。

root@kitploit:~
docker-compose up -d

利用可能なSwagger UI 🚀

APIを実行している場所のパス /ui にアクセスすると、Swagger UIが利用可能になり、開始に役立ちます!

root@kitploit:~
http://127.0.0.1:5000/ui/

トークンタイムアウトと脆弱環境のカスタマイズ

ログイン後に作成されるトークンのタイムアウトを変更したい場合、または環境を脆弱でない状態に変更したい場合、アプリケーションの実行方法に応じていくつかの方法があります。

  • 通常どおり python3 app.py で実行する場合、app.py 自体で定義されている alive 変数と vuln 変数を編集するだけです。alive 変数は秒単位で測定されるため、100 に設定すると、トークンは100秒後に期限切れになります。vuln 変数はブール値のようなもので、1 に設定するとアプリケーションは脆弱になり、0 に設定すると脆弱になりません。
  • Dockerで実行する場合、docker run コマンドに環境変数を渡すか、Dockerfile を編集して再ビルドする必要があります。
    • Docker runの例: docker run -d -e vulnerable=0 -e tokentimetolive=300 -p 5000:5000 erev0s/vampi:latest

      • この方法で実行する利点の1つは、vulnerable=1 の2番目のコンテナを別のポートで起動し、2つの間を簡単に切り替えられることです。
    • Dockerfileには、ENV vulnerable=1 と ENV tokentimetolive=60 の2つの環境変数が設定されています。docker buildコマンドを実行する前に自由に変更してください。

よくある質問

  • エンドポイントにアクセスするとデータベースエラーが発生します!
    • データベースにデータを投入するために、/createdb エンドポイントにリクエストを送信してください。

画像提供: freepik - www.freepik.com

ツールをダウンロード