Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-29057-POC — 基于 Docker 的实验环境,复现 CVE-2026-29057 Next.js 请求走私漏洞,通过原始分块 HTTP 载荷对比存在漏洞的 15.5.12 版本与已修复的 15.5.13 版本。 | Kitploit
工具/GitHubGitHub/learnerxuan/cve-2026-29057-poc
漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试论文与研究学习与教育实验室与实践
GitHublearnerxuan/cve-2026-29057-poc

CVE-2026-29057-POC

基于 Docker 的实验环境,复现 CVE-2026-29057 Next.js 请求走私漏洞,通过原始分块 HTTP 载荷对比存在漏洞的 15.5.12 版本与已修复的 15.5.13 版本。

查看仓库
8小时18分前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-29057 — Next.js 请求走私实验环境

本仓库是一个专注于 CVE-2026-29057 的演示实验环境。它使用相同的拓扑结构和原始 HTTP 载荷,对比存在漏洞的 Next.js 目标(15.5.12)与已修补版本(15.5.13)。

请仅在隔离的实验环境中使用。请求反同步探测可能会干扰真实环境中的共享连接。

致谢

本仓库改编自 Nayaka Ghana Subrata 的原始 Next.js 概念验证仓库。基础性概念验证工作完全归功于原作者。

我对该工作进行了重组和修改,使其专门聚焦于 CVE-2026-29057,包括演示材料、引导式演示、实验场景、解释性注释以及漏洞版本与修补版本的对比。本仓库是教育性改编,不应被误认为是原作者的仓库。

演示

  • CVE-2026-29057 演示幻灯片
  • 演示脚本
  • 演示运行手册
  • 演示者问答

实验环境证明了什么

  1. 客户端发送一个分块传输的 DELETE /api/workspace/tasks/1042 请求。
  • 其请求体包含拼出第二个请求的字节:GET /secret。
  • 存在漏洞的代理移除了 Transfer-Encoding 并添加了 Content-Length: 0,而请求体字节仍被转发。
  • 下游中间件将剩余字节解析为第二个请求,并将两个解析出的请求都转发到最终后端。
  • 目标Next.js后端请求
    存在漏洞15.5.12DELETE /api/workspace/tasks/1042,然后是 GET /secret
    已修补15.5.13仅 DELETE /api/workspace/tasks/1042

    仓库结构

    root@kitploit:~
    .
    ├── docker-compose.yml
    ├── DEMO-RUNBOOK.md
    ├── PRESENTATION-SCRIPT.md
    ├── PRESENTATION-QA.md
    ├── pocs/cve-2026-29057/
    │   ├── app/
    │   ├── support/server.js
    │   ├── next.config.js
    │   └── Dockerfile
    └── scripts/run-cve-2026-29057.mjs
    

    启动实验环境

    要求:Docker Compose 和 Node.js 18 或更高版本。

    root@kitploit:~
    docker compose up --build cve-2026-29057-vuln cve-2026-29057-fixed
    
    • 存在漏洞:http://localhost:3105
    • 已修补:http://localhost:3106

    运行差异演示

    root@kitploit:~
    node scripts/run-cve-2026-29057.mjs http://localhost:3105
    node scripts/run-cve-2026-29057.mjs http://localhost:3106
    

    预期的漏洞版本证据:

    root@kitploit:~
    [after] {"backendRequests":["DELETE /api/workspace/tasks/1042","GET /secret"],"flag":"FLAG{one_stream_two_requests}"}
    PoC result: vulnerable behavior reproduced.
    Flag: FLAG{one_stream_two_requests}
    

    预期的修补版本证据:

    root@kitploit:~
    [after] {"backendRequests":["DELETE /api/workspace/tasks/1042"],"flag":null}
    PoC result: smuggled request was not observed. This usually means the target is patched.
    

    有意义的证据在于差异:拓扑结构和载荷保持不变,只有 Next.js 版本不同。

    黑盒发现过程

    本实验环境不要求演示者假装攻击者神奇地知道这两个路径:

    1. 页面将 Launch brief 明显标记为 Task #1042。在通过 Burp 浏览时点击 Delete task。代理历史记录会显示合法的 DELETE /api/workspace/tasks/1042 请求,因此载体路径直接来自正常的应用程序流量。
    2. 请求 /robots.txt。它指向意外部署的 /ops/release-manifest 工件。
    3. 请求该清单文件。它将 /api/workspace/ 标识为公共服务前缀,泄露 /secret 为内部路由,并将 /api/state 命名为请求日志。它本身并不泄露 flag。

    该清单文件是实验叙事中故意设置的信息泄露弱点。它与 CVE-2026-29057 是分开的;该 CVE 提供了到达已披露后端路由的请求分帧绕过。

    这些路由名称是实验环境的固定装置,并非从真实受害者处恢复的路径。Vercel 的官方补丁添加了一个回归测试,该测试定义了 /rewrites/:path*,使用 /rewrites/poc 作为载体,并在测试后端创建了 /secret。本实验环境为载体赋予了一个产品形态的名称,同时保留了该测试结构。

    代码走读顺序

    1. docker-compose.yml — 漏洞版本与修补版本。
    2. pocs/cve-2026-29057/next.config.js — 外部重写边界。
    3. pocs/cve-2026-29057/support/server.js — 中间件和后端解析器。
    4. scripts/run-cve-2026-29057.mjs — 原始分块载荷和结果检查器。
    5. pocs/cve-2026-29057/app/api/ — 证据重置和读取端点。

    停止实验环境

    root@kitploit:~
    docker compose down
    

    来源

    • GitHub 安全公告 GHSA-ggv3-7p47-pfv8
    • Next.js 补丁提交
    • NVD 记录
    下载工具