news 2026/4/23 12:30:30

CVE-2025-29927 Next.js 中间件授权绕过漏洞检测工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CVE-2025-29927 Next.js 中间件授权绕过漏洞检测工具

CVE-2025-29927 Next.js Middleware Bypass Test

项目概述

本项目是一个专门用于检测Next.js应用中CVE-2025-29927安全漏洞的Python工具。该漏洞存在于Next.js的特定版本中,允许攻击者通过x-middleware-subrequest头绕过中间件的安全验证机制,可能导致未授权访问受保护资源。

功能特性

  • 漏洞检测:自动向目标Next.js应用发送包含特定头的请求,验证是否存在授权绕过风险
  • 多方法支持:支持GET、POST等多种HTTP方法进行测试
  • 响应分析:详细解析服务器响应,包括状态码、响应头和响应体
  • 结果记录:自动将检测结果保存到本地文件,便于后续分析
  • 颜色化输出:使用Colorama库提供彩色控制台输出,提升可读性
  • 错误处理:完善的异常处理机制,涵盖网络超时、连接拒绝等常见问题
  • 横幅显示:启动时显示美观的ASCII艺术横幅

安装指南

系统要求

  • Python 3.6或更高版本
  • 支持的网络环境(可访问目标服务器)

安装步骤

  1. 克隆仓库

    gitclone https://github.com/B1ack4sh/Blackash-CVE-2025-29927cdCVE-2025-29927
  2. 创建虚拟环境(推荐)

    python3 -m venv .venvsource.venv/bin/activate# Linux/macOS# 或 .venv\Scripts\activate # Windows
  3. 安装依赖

    pipinstallcolorama

依赖项

  • colorama:跨平台彩色终端文本输出
  • 标准库:http.client,argparse,socket,asyncio,datetime

使用说明

基本使用

python3 exploit.py --hostname TARGET_HOSTNAME

完整参数

python3 exploit.py --hostname example.com --port80--path /admin --method GET

参数说明

  • --hostname:目标服务器主机名(必需)
  • --port:目标服务器端口(默认:80)
  • --path:测试路径(默认:/)
  • --method:HTTP方法(默认:GET)

示例场景

  1. 快速测试默认路径

    python3 exploit.py --hostname vulnerable-app.com
  2. 测试特定管理端点

    python3 exploit.py --hostname app.company.com --port443--path /api/admin --method POST
  3. 批量测试多个端点
    可以通过脚本循环调用工具测试多个路径和端点

输出说明

  • 成功连接:绿色状态码和响应信息
  • 漏洞迹象:重点关注x-middleware-subrequest头处理
  • 错误信息:红色错误提示,包含具体原因

核心代码

1. 主请求函数

defmake_request(hostname,port,path,method,headers={}):""" 向目标服务器发送HTTP请求并获取响应 参数: hostname: 目标主机名 port: 目标端口 path: 请求路径 method: HTTP方法 headers: 自定义请求头 返回: dict: 包含状态码、头部、正文和重定向位置的响应字典 异常: 抛出详细异常信息帮助诊断连接问题 """conn=Nonetry:# DNS解析验证socket.gethostbyname(hostname)# 建立HTTP连接conn=http.client.HTTPConnection(hostname,port,timeout=15)# 发送请求conn.request(method,path,headers=headers)# 获取响应res=conn.getresponse()# 读取响应体body=res.read().decode('utf-8',errors='ignore')# 构建响应字典response={'status_code':res.status,'headers':dict(res.getheaders()),'body':body,'location':res.getheader('location')}returnresponseexceptsocket.gaierror:raiseException("Hostname resolution failed - Check your DNS or target address")exceptsocket.timeout:raiseException("Connection timed out - Target may be down or blocked")exceptConnectionRefusedError:raiseException("Connection refused - Check if server is running")exceptExceptionase:raiseException(f"Unexpected error:{str(e)}")finally:ifconn:conn.close()

2. 横幅显示函数

defprint_banner():""" 显示工具启动横幅 使用Colorama库实现彩色ASCII艺术输出, 包含工具名称和作者信息 """banner=f"""{colors['cyan']}╔════════════════════════════════════════════════════╗ ║ CVE-2025-29927 Next.js Middleware Bypass Test ║ ║ Created by: Black Ash "B1ack4ash" ║ ╚════════════════════════════════════════════════════╝{colors['reset']}"""print(banner)

3. 颜色配置

importhttp.clientimportargparseimportsocketimportasynciofromcoloramaimportinit,Fore,Stylefromdatetimeimportdatetime# 初始化Coloramainit()# 颜色映射配置colors={'reset':Style.RESET_ALL,'red':Fore.RED,'green':Fore.GREEN,'yellow':Fore.YELLOW,'blue':Fore.BLUE,'magenta':Fore.MAGENTA,'cyan':Fore.CYAN,'white':Fore.WHITE}

4. 漏洞背景信息

# CVE-2025-29927 - Next.js关键安全漏洞# 漏洞描述# Next.js是一个用于构建全栈Web应用的React框架。# 从版本1.11.4开始,在12.3.5、13.5.9、14.2.25和15.2.3之前的版本中,# 如果授权检查发生在中间件中,则可能绕过Next.js应用中的授权检查。# 如果无法修补到安全版本,建议阻止包含x-middleware-subrequest头的外部用户请求到达您的Next.js应用。# 影响版本# Next.js 14.2.25 和 15.2.3 之前的版本均受影响# 漏洞细节# 该漏洞源于对内部x-middleware-subrequest头的处理不当。# 通过构造包含此头的请求,攻击者可以绕过中间件安全检查,# 有效跳过身份验证和授权机制。

注意事项

  1. 合法使用:仅用于授权的安全测试和漏洞研究
  2. 版本检查:定期更新Next.js到安全版本(12.3.5、13.5.9、14.2.25、15.2.3或更高)
  3. 生产环境:不建议在生产环境中直接使用,应在测试环境中验证
  4. 网络限制:确保有权限测试目标系统,避免违反法律或政策
  5. 结果验证:工具结果应通过手动测试进行二次确认

技术原理

CVE-2025-29927漏洞的核心在于Next.js中间件对x-middleware-subrequest头的错误处理。当攻击者发送包含此头的请求时,中间件可能误认为是内部请求而跳过安全检查。本工具通过模拟这种攻击模式,帮助安全团队验证其应用是否存在此类风险。

工具实现采用标准的HTTP客户端库,通过精确构造请求头和解析响应来识别漏洞迹象。彩色输出和详细的错误信息提供了良好的用户体验,同时文件保存功能便于记录和分析测试结果。FINISHED
6HFtX5dABrKlqXeO5PUv/84SoIo+TE3firf/5vX8AZ71qh6bNMndvp1JLGMlbnyv
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 2:00:12

OpenClaw+一步API实战:本地化AI自动化助手从部署到落地全指南

摘要 OpenClaw(前身为Clawdbot,曾用名Moltbot)作为一款高星标开源AI自动化工具,以“本地部署自主执行”为核心特色,可实现跨应用任务自动化、界面视觉识别等核心能力。本文聚焦国内开发者痛点,从环境搭建、…

作者头像 李华
网站建设 2026/4/19 11:23:37

TikTok跨境电商新变化下的实战打法:履约、费用、指标、风控一把抓

跨境卖家做内容带货,最大的误区是把增长当“视频爆了就行”。到现在这个阶段,平台的逻辑更像成熟电商:履约稳定、售后可控、指标达标、费用算得清,才有长期流量与可持续回款。下面按“近期可感知的新变化”拆解,并给你…

作者头像 李华
网站建设 2026/4/23 11:37:51

机器人租售怎么嵌?按流程节点

我看过不少活动,机器人越来越多地出现在流程表里,作为一个固定的条目。它们什么时间出现、做什么、持续多久,都是活动开始前就定下的。现场的情况,就是看这些条目如何变成机器人实际的动作或静止。客户谈论的,也总是和…

作者头像 李华
网站建设 2026/4/15 19:06:19

上海开放大学电子商务导论作业答案

1. “电子商务”是通过()进行???售商品、提供服务等的经营活动。 A. 增值网 B. 虚拟网 C. 互联网 D. 局域网 2. B2B的含义是(),通过网络进行产品或服务的经营活动。 A. 企业和企业之间 B. 企业和消费者之间 C. 消费者和…

作者头像 李华