这是为您 GitHub 仓库准备的一份简洁且信息丰富的 README.md,它说明了这是一个针对 CVE-2025-29927 的易受攻击的 Next.js 应用程序,并包含指向您设置视频的 YouTube 链接:
这是一个易受攻击的 Next.js 应用程序,用于演示 CVE-2025-29927——在使用 Next.js 且存在不当输入处理或访问控制缺陷的 Web 应用程序中发现的一个安全漏洞。
该项目使用 MySQL 后端和 JWT 身份验证,仅用于教育和测试目的——例如渗透测试实验室、负责任披露演示和安全研究。
users.csv 中测试账户的密码为 "123456",JWT 身份验证的密钥 "JWT_SECRET" 已添加到 ".env.local" 文件中,并被有意共享在此公开仓库中;该 JWT 令牌并未用于生产环境。这样做是为了简化部署和测试。
您也可以将 JWT 的密钥替换为自己生成的密钥,但 .env 文件必须存在,JWT 身份验证才能正常工作。
⚠️ 免责声明:本项目故意包含漏洞。请勿在生产环境中部署。仅在隔离或受控环境中用于教育用途。
在 YouTube 上观看此项目的完整设置与演示指南:
▶️ [https://www.youtube.com/watch?v=Akb3R34QnM8&t=482s]
在 YouTube 上观看漏洞如何被利用的完整演示: ▶️ [https://www.youtube.com/watch?v=3OPWodc2lx4]
git clone https://github.com/enochgitgamefied/NextJS-CVE-2025-29927.git
cd NextJS-CVE-2025-29927
npm install
创建一个 MySQL 数据库,并在以下位置更新连接信息:
/database/index.js
最简单的设置方式是使用此仓库中共享的 csv 文件来创建数据表。所使用的用户账户均使用相同的密码,密码为 "123456"。观看 YouTube 视频以获取完整详情和分步说明。
您也可以使用类似下面的示例。 示例:
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'yourpassword',
database: 'cve_demo'
});
然后从 database/schema.sql 导入 schema,或运行您自己的设置脚本。
npm run dev
在浏览器中访问 http://localhost:3000 查看应用。
该应用包含充当 WAF(Web 应用程序防火墙)的 NextJS 中间件,以及易受攻击的 next 13.4.9 版本,攻击者可借此利用与身份验证绕过、本地文件包含或不当访问控制相关的漏洞。其目标是帮助研究人员了解如何利用此 CVE 以及如何缓解该漏洞。
https://techtalkpine.com/2025/03/demo-for-cve-2025-29927-nextjs/
本项目基于 MIT 许可证 授权。