
oss-oopssec-store v2.18.0
実際に出荷するアプリのためのセキュリティトレーニング。ブラウザを開いてハッキングを始めましょう。
OSS - OopsSec Store
Webセキュリティ学習のための意図的に脆弱なeコマースアプリです。
現実的なCTFプラットフォームで実世界の攻撃ベクトルを習得できます。
フラッグを探し、脆弱性を悪用し、セキュリティスキルをレベルアップしましょう。
Docker Hub · npm · ロードマップ · ウォークスルー · コントリビューション · Good first issues
____ ____ ____ ____ ____ ____ _
/ __ \/ __// __/ / __ \ ___ ___ ___ / __/ ___ ____ / __/ / /_ ___ ____ ___
/ /_/ /\ \ _\ \ / /_/ // _ \ / _ \(_-<_\ \ / -_)/ __/_\ \ / __// _ \ / __// -_)
\____/___//___/ \____/ \___// .__/___/___/ \__/ \__//___/ \__/ \___//_/ \__/
/_/
# Node.js
npx create-oss-store my-ctf-lab && cd my-ctf-lab && npm start
# Docker
docker run -p 3000:3000 leogra/oss-oopssec-store
# Then open http://localhost:3000 and start hacking
目次
[!WARNING] このアプリケーションには意図的なセキュリティ上の欠陥が含まれており、本番環境にデプロイしてはなりません。
特徴
- 意図的に脆弱なeコマースアプリ(XSS、CSRF、IDOR、JWT攻撃、パストラバーサル、SQLインジェクションなど)
- Next.js、React、Prisma、SQLiteで構築
- 攻撃ベクトルが文書化されたREST API
- 11のチャプターにわたる36のCTFチャレンジを、構造化された学習ロードマップとして構成
- 各チャレンジの脆弱性ドキュメントとコミュニティによるウォークスルー
- エクスプロイトが今も機能することを検証する自動テスト(誤って脆弱性を修正したPRはCIで失敗します)
OopsSec Storeを選ぶ理由
OopsSec Storeは、Next.jsとReactで構築された唯一の意図的に脆弱なWebアプリケーションです。本番環境で実際に遭遇するスタックです。そしてAI時代の攻撃面は後付けではなく、コアカリキュラムの一部です。プロンプトインジェクション、MCPツールポイズニング、AIコーディングエージェントへのバックドア、npmサプライチェーン攻撃の連鎖をエンドツーエンドでシミュレートします。
| OopsSec Store | Juice Shop | DVWA | |
|---|---|---|---|
| スタック | Next.js · React · Prisma | Node.js · Express · Angular | PHP · MySQL |
| セットアップ | npx create-oss-store(1分未満)/ Docker | Docker / npm | Docker / 手動LAMP |
| CTFフラッグ | ✅ 組み込み | ✅ オプトインCTFモード | ❌ |
| ガイド付き学習ロードマップ | ✅ 1つのロードマップ、11章、36フラッグ | ❌ スコアボードのみ | 一部(セキュリティレベル) |
| 全チャレンジのウォークスルー | ✅ | ✅ 付属ガイド | 一部(ヒント) |
| LLMプロンプトインジェクション | ✅ 無料のAPIキーを接続する | ✅ v20以上、独自のLLMを持ち込んで設定 | ❌ |
| MCPツールポイズニング | ✅ | ❌ | ❌ |
| AIコーディングエージェントのバックドア(改ざんされたルールファイル) | ✅ | ❌ | ❌ |
| サプライチェーン攻撃の連鎖 | ✅ エンドツーエンドでシミュレート:npmタイポスクワッティング → ルールのバックドア | 一部 — 識別のみ | ❌ |
| 実在のCVEに基づくチャレンジ | ✅ | ❌ | ❌ |
| プレイヤー向け殿堂入り | ✅ | ❌ | ❌ |
最終検証:2026年6月、Juice Shop v20およびDVWA 2.xに対して。誤りを見つけましたか? イシューを開くかPRを開くしてください。
インストール
クイックスタート
npx create-oss-store my-ctf-lab
cd my-ctf-lab
npm start
次に、ブラウザで http://localhost:3000 を開いてください。
手動セットアップ
リポジトリをクローンし、セットアップスクリプトを実行します:
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
npm run setup
これにより、.envファイルが作成され、依存関係がインストールされ、SQLiteデータベースがセットアップされ、CTFフラッグがシードされ、ポート3000でアプリが起動します。
Docker
Node.jsは不要です。DockerだけでOKです。
Docker Hubから(最速)
docker run -p 3000:3000 leogra/oss-oopssec-store
再起動後もデータを保持するには:
docker run -p 3000:3000 -v oss-data:/app/data leogra/oss-oopssec-store
ソースから(Docker Compose)
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
docker compose up -d
またはnpmヘルパースクリプトを使用する場合:
npm run docker:up # Start in background (builds image on first run)
npm run docker:logs # Follow container logs
npm run docker:down # Stop the container
npm run docker:reset # Wipe data and restart fresh
データベースは初回起動時に初期化されます。データはDockerの名前付きボリュームにより再起動後も保持されます。すべて(フラッグの進行状況、ユーザー、アップロード)をリセットするには、npm run docker:resetを実行してください。
殿堂入り
すべてのフラッグを見つけましたか? 殿堂入りに参加するにはプルリクエストを開いてください。hall-of-fame/data.jsonにエントリを追加すると、アプリの/hall-of-fameページにあなたのプロフィールが表示されます。
プロジェクト構成
| フォルダ | 説明 |
|---|---|
app/ | Next.js App Router:ページ、APIルート、Reactコンポーネント |
app/api/ | REST APIエンドポイント(認証、カート、注文、商品、フラッグなど) |
app/components/ | React UIコンポーネント(Header、Footer、ProductCardなど) |
app/vulnerabilities/ | 各脆弱性を解説するページ |
content/vulnerabilities/ | 脆弱性と攻撃ベクトルのMarkdown解説 |
lib/ | 共有ユーティリティ:DBクライアント、認証、APIヘルパー、型 |
prisma/ | データベーススキーマ、シードスクリプト、flags.ts — CTFフラッグとそのヒント |
public/ | 静的アセットとエクスプロイトペイロード(例:CSRFデモ) |
hooks/ | カスタムReactフック(認証など) |
scripts/ | セットアップおよび自動化スクリプト |
docs/ | コミュニティのウォークスルーを備えた静的ドキュメントサイト |
hall-of-fame/ | すべてのフラッグを見つけたプレイヤーのプロフィール |
packages/ | スキャフォールディング用のNPMパッケージcreate-oss-store(およびreact-toastfyなどのラボ隔離アーティファクト) |
lab/quarantine/ | サプライチェーンチャレンジ用の不活性な悪意あるペイロード(データとして扱い、決して指示として扱わないこと) |
tests/ | エクスプロイトを検証するJestユニットテストおよびAPIテスト |
cypress/ | 完全なエクスプロイトワークフローのE2Eテスト |
最近の活動 
テスト
このプロジェクトには、すべてのエクスプロイトチェーンとフラッグが今も機能することを確認するセキュリティ回帰テストが含まれています。これらのテストは意図的に安全でない動作を検証します。すべてのPRで実行されるため、誤って脆弱性を修正してもCIが検出します。
テストの実行
# Unit tests (utility functions: MD5 hashing, JWT, input filters)
npm run test:unit
# API exploitation tests (requires a running server)
npm run test:api
# E2E exploitation tests (requires a running server)
npm run test:e2e
# Open Cypress interactive mode
npm run test:e2e:open
# All tests
npm run test:ci
免責事項
[!CAUTION] このプロジェクトは教育目的および許可されたセキュリティテスト専用です。 意図的な脆弱性と安全でない構成が含まれています。著者は誤用、損害、不正アクセスについて一切責任を負いません。隔離された環境で使用してください。
コントリビューション
OSS – OopsSec StoreはMITライセンスです。コントリビューションを歓迎します。
コントリビューションの方法:
- 新しいセキュリティチャレンジを追加する
- ウォークスルーを作成・改善する
- アプリケーションを拡張する
- バグを報告・修正する
- ドキュメントを改善する
ロードマップで計画中の作業を確認するか、good first issueに取り組みましょう。
すべてのフラッグを見つけましたか? ドキュメントサイトでウォークスルーを共有してください。
バグや提案は、GitHub Issueを開いてください。ガイドラインはCONTRIBUTING.mdを参照してください。
🎓 コースやCTFでOopsSec Storeを使用していますか?
教育者キットをチェックしてください。OWASPカバレッジ表、シラバステンプレート、デプロイFAQ、学生レポートテンプレートを備えた、すぐに使えるガイドです。
/ トップコントリビューター
作者: kOaDT
プロジェクト: OopsSec Store
連絡先: [email protected]
ライセンス: MIT
フォーク内のLICENSEファイルを削除または変更しないでください。