
vAPIは脆弱で悪意を持ってプログラムされたインターフェースであり、演習を通じてOWASP API Top 10のシナリオを模倣したセルフホスト可能なAPIです。
vAPI は、演習形式で OWASP API Top 10 のシナリオを模倣した、自己ホスト可能な脆弱な API(Vulnerable Adversely Programmed Interface)です。
docker-compose up -d
cd <your-hosting-directory>
git clone https://github.com/roottusk/vapi.git
vapi.sql を MySQL データベースにインポートします。
vapi/.env 内でデータベースの認証情報を設定します。
以下のコマンドを実行します(Linux)
service mysqld start
vapi ディレクトリに移動して実行します
php artisan serve
vAPI.postman_collection.json をインポートしますvAPI_ENV.postman_environment.json をインポートしますまたは
パブリックワークスペースを使用します
https://www.postman.com/roottusk/workspace/vapi/
ドキュメントについては http://localhost/vapi/ を参照してください
リクエスト送信後、生成されたトークンについては Postman テストまたは環境を参照してください
Helm を使用して Kubernetes 名前空間にデプロイできます。チャートは vapi-chart フォルダにあります。チャートには以下の値を持つ vapi という名前のシークレットが必要です。
DB_PASSWORD: <database password to use>
DB_USERNAME: <database username to use>
Helm インストールコマンドの例: helm upgrade --install vapi ./vapi-chart --values=./vapi-chart/values.yaml
*** 重要 ***
values.yaml の 232 行目の MYSQL_ROOT_PASSWORD は、動作のために 184 行目のものと一致している必要があります。
HITB Cyberweek 2021, アブダビ, UAE
[2] https://dsopas.github.io/MindAPI/references/
[3] https://dzone.com/articles/api-security-weekly-issue-132
[4] https://owasp.org/www-project-vulnerable-web-applications-directory/
[5] https://github.com/arainho/awesome-api-security
[1] https://cyc0rpion.medium.com/exploiting-owasp-top-10-api-vulnerabilities-fb9d4b1dd471 (vAPI 1.0 解説)
[2] https://www.youtube.com/watch?v=0F5opL_c5-4&list=PLT1Gj1RmR7vqHK60qS5bpNUeivz4yhmbS (トルコ語) (vAPI 1.1 ウォークスルー)
[3] https://medium.com/@jyotiagarwal3190/roottusk-vapi-writeup-341ec99879c (vAPI 1.1 解説)