
Mongo Vulnub Lab...ハックしてみよう.....!
CTF チャレンジ - Mongoose RCE (CVE-2024-53900)
チャレンジ概要
この Capture The Flag (CTF) チャレンジは、Mongoose の脆弱性 CVE-2024-53900 に基づいています。この脆弱性は、MongoDB クエリ内の $where 演算子の不適切な使用により、リモートコード実行 (RCE) を可能にします。
あなたの目標は、この脆弱性を悪用して、アプリケーション内に隠されたフラグを取得することです!
セットアップ手順
1 依存関係のインストール Node.js がインストールされていることを確認し、次のコマンドを実行します:
npm install
2 MongoDB の設定 MongoDB をインストールし、実行中であることを確認します。 ルートディレクトリに .env ファイルを作成し、次の内容を記述します:
MONGO_URI=mongodb://localhost:27017/ctf_db
3 サーバーの起動 脆弱な Express サーバーを実行します:
node server.js
サーバーは http://localhost:3000 で起動します。
チャレンジの目的
あなたの目標は、認証をバイパスし、脆弱なエンドポイントからフラグを抽出することです。
脆弱なエンドポイント:
POST /login
アプリケーションは安全でない MongoDB $where クエリを使用しており、NoSQL インジェクションと RCE に対して脆弱です。
悪用のヒント:
クエリを操作するために NoSQL インジェクションペイロードを試してみてください。
$where 条件に JavaScript コードを注入します。
レスポンス内に隠されたフラグを取得します。
ディレクトリ構造
│── public/ Frontend assets
│ ├── index.html CTF challenge UI
│ ├── style.css Styling for the challenge
│ └── script.js JavaScript for login request
│── .env Environment variables (MongoDB URI)
│── server.js Vulnerable Express.js server
│── package.json Dependencies & scripts
│── package-lock.json Lock file for dependencies
└── README.md Challenge guide (this file)
勝利条件
脆弱性の悪用に成功すると、次のレスポンスが得られます:
Login Successful! Here is your flag: FLAG{**__****}