
Atomic Web脆弱性ラボ。アプリごとに1つのOWASP脆弱性 — 最小限のFlask + Dockerで、Burp Suiteを使ったハンズオン学習のために意図的に脆弱性を作り込んでいます。
⚠️ 意図的に脆弱です。ローカルでのみ実行してください。インターネットや共有ネットワークに公開しないでください。
他の言語で読む: Português (Brasil)
マイルストーン — v1.0: web シリーズは、**OWASP Top 10 2021 の全10カテゴリ(A01–A10)**を、38個の atom でカバーするようになりました。v1.0 リリースを参照してください。
atomicvulns はアトミックな Web アプリケーションのコレクションです。各アプリは小さく、分離されており、OWASP Top 10 の単一の脆弱性に焦点を当てています。各 atom には、脆弱なアプリ、修正版、両者のコメント付き diff、そしてエクスプロイトのハンズオンウォークスルーが含まれています。
これはもう一つの DVWA や Juice Shop ではありません。モノリシックな脆弱アプリはすでに存在します。atomicvulns が際立つのは徹底した原子性です。1つの欠陥につき1つのアプリで、素早く読め、素早く探索できます。アプリケーション全体を理解する必要なく、コードの原因 → リクエスト/レスポンス → エクスプロイトを対応付けることができます。
web シリーズ(Python/Flask)は、OWASP Top 10 2021 の全10カテゴリをカバーしています — 合計38個の atom です:
| カテゴリ | Atoms |
|---|---|
| A01 — アクセス制御の不備 | idor-numeric-id, path-traversal-basic, idor-uuid-guessable, bola-rest, csrf-basic, open-redirect, mass-assignment |
| A02 — 暗号化の失敗 | jwt-none-alg, jwt-weak-secret, jwt-key-confusion, crypto-weak-hash, crypto-ecb-mode |
| A03 — インジェクション | sqli-union-basic, xss-reflected, sqli-blind-boolean, sqli-blind-time, xss-stored, command-injection-basic, ssti-jinja, xss-dom, nosql-injection-mongo, ldap-injection, sqli-second-order |
| A04 — 安全でない設計 | race-condition-basic |
| A05 — セキュリティの設定ミス | xxe-basic, xxe-blind-oob, debug-enabled, cors-wildcard |
| A06 — 脆弱で古くなったコンポーネント | cve-demo |
| A07 — 識別と認証の失敗 | session-fixation, weak-password-reset |
| A08 — ソフトウェアとデータの整合性の失敗 | deserialization-pickle, prototype-pollution, deserialization-node |
| A09 — セキュリティログと監視の失敗 | logging-failures-demo |
| A10 — サーバーサイドリクエストフォージェリ(SSRF) | ssrf-basic, ssrf-blind-oob, ssrf-cloud-metadata |
API シリーズ(TypeScript/Express)は、OWASP API Security Top 10 2023 を対象としています。その最初のフェーズ — Authorization: Object & Function — が公開されています。2つのカテゴリにわたる5個の atom で、オブジェクトレベルとファンクションレベルの認可の軸を網羅しています。完全な順序付き計画は ROADMAP にあります。
| カテゴリ | Atoms |
|---|---|
| API1 — オブジェクトレベルの認可の不備 | bola-sequential-id, bola-uuid-leaked, bola-nested-resource |
| API5 — ファンクションレベルの認可の不備 | bfla-admin-function, bfla-method-based |
HTTP とターミナルの基本をすでに理解しており、Burp Suite を使用している(または使い方を学んでいる)、そして各演習が1回のセッションで終えられるほど短い集中型ラボを求めている、ペネトレーションテストの学生や AppSec 学習者。この教材は、ペネトレーションテストのキャリアでこれを活用する人向けに書かれています — Burp が主要なツールであり、UI は単なるコンテキストにすぎません。
各アトムは独自のフォルダに格納されています — Web シリーズでは atoms/web/A0X-<category>/<atom-id>/、API シリーズでは atoms/api/APIX-<category>/<atom-id>/ — そして docker-compose.yml が同梱されています。ルートのラッパースクリプト ./atom がそれらを操作します:
./atom list # show all available atoms
./atom up <atom-id> # start the vulnerable + fixed pair
./atom down <atom-id> # stop and remove containers
./atom doctor # sanity-check your local setup
例:
./atom up sqli-union-basic # web series
# vulnerable → http://127.0.0.1:8001
# fixed → http://127.0.0.1:8101
./atom up bola-sequential-id # API series
# vulnerable → http://127.0.0.1:8201
# fixed → http://127.0.0.1:8301
各アトムは 127.0.0.1 にのみバインドされます。決してそれを変更しないでください — これらのアプリは意図的に脆弱な状態にされています。
MIT License の下で公開されています。教育資料としてこのリポジトリをフォークする場合は、帰属表示が必要です。