提升审美网站鄂州网站建设公司
2026/4/18 10:01:57 网站建设 项目流程
提升审美网站,鄂州网站建设公司,百度投诉平台在哪里投诉,商业源码网Next.js: CVE-2025–29927 Tryhackme Write-up 探索Next.js中的一个授权绕过漏洞。 作者: 0verlo0ked 阅读时间: 6分钟 2025年3月26日 引言 Next.js是由Vercel开发的Web开发框架#xff0c;旨在简化高性能Web应用程序的创建。它构建于React之上#xff0c;通过添加静态站点生…Next.js: CVE-2025–29927 Tryhackme Write-up探索Next.js中的一个授权绕过漏洞。作者: 0verlo0ked阅读时间: 6分钟 · 2025年3月26日引言Next.js是由Vercel开发的Web开发框架旨在简化高性能Web应用程序的创建。它构建于React之上通过添加静态站点生成和服务端渲染等功能扩展了React的能力。SSG在构建时预生成页面实现更快的内容交付SSR则在请求时渲染页面减少加载时间。简言之Next.js通过添加功能来提升性能和用户体验。CVE-2025–29927是最近由Rachid和Yasser Allami在Next.js中发现的一个漏洞。该漏洞表明如果授权检查发生在中间件中攻击者有可能绕过这些检查。中间件是开发者控制传入请求的部分它充当传入请求和路由系统之间的桥梁。路由系统是基于文件的即通过组织文件和目录来创建和管理路由。此漏洞允许攻击者绕过基于中间件的授权14.2.25之前的所有版本以及15.2.3之前的版本均受此漏洞影响。Next.js广泛应用于各类应用程序包括电子商务平台、新闻应用、文档站点和交互式Web应用。因此该漏洞可能造成严重后果需要管理员将其安装升级到已修复的版本。漏洞利用概念验证可利用应用和利用代码已由Yunus Aydin在GitHub上发布。我们已适配该应用并将其托管在附带的虚拟机中。您可以通过在AttackBox上访问http://10.10.149.25:3000来查看示例Web应用。但是如果您尝试访问受保护的路由http://10.10.149.25:3000/protected您将被重定向到主页。Curl利用CVE-2025–29927漏洞非常简单攻击者只需在其请求中添加额外的HTTP头部x-middleware-subrequest: middleware。正如披露此漏洞的原始文章所解释的添加x-middleware-subrequest头部会导致请求在没有中间件处理的情况下被转发到其目的地。因此只需使用带有适当头部参数的curl即可访问受保护的路由即页面。利用此漏洞可以让我们访问受保护的页面。一个简单的方法是在AttackBox的终端中执行以下命令curl-Hx-middleware-subrequest: middlewarehttp://10.10.149.25:3000/protected该命令类似于通常的curl命令只有一个例外它使用-H等同于--header向HTTP GET请求添加一个额外的头部。因此上述curl命令允许攻击者绕过所有安全控制并获取受保护的页面。Burp Suite如果您更喜欢图形用户界面使用Burp Suite利用此漏洞同样容易。一种简单的方法是使用Burp Suite的浏览器并在访问http://10.10.149.25:3000/protected时修改请求。如果您不熟悉Burp Suite可以在启动Burp Suite后按照以下步骤操作导航到Proxy标签页并确保Intercept处于开启状态。这将确保Burp Suite拦截所有HTTP请求并让您在请求发送到Web服务器之前有机会修改它们。点击Open browser按钮并导航到http://10.10.149.25:3000/protected。HTTP请求被拦截它将保持冻结状态直到您点击Forward按钮。在按下Forward按钮之前您必须在HTTP头部添加x-middleware-subrequest: middleware。下图显示了一个被操纵的头部示例。您可以在浏览器中看到结果。THM{NEXT_MDLE_JS}检测从前面的任务中回顾一下针对Next.js的CVE-2025–29927是一个中间件授权绕过漏洞导致能够访问先前需要此类授权的页面和路由。本任务将介绍一些可用于检测此攻击发生的技术和规则包括通过日志和网络流量。手动检测Web服务器日志可能用于发现此漏洞利用发生的证据。然而这取决于Web服务器是否配置为记录HTTP头部。例如NodeJS允许通过request.headers[x-middleware-subrequest]记录此特定HTTP头部。如果Web应用被代理则需要修改Nginx或Apache2等Web服务器上的日志配置以记录此特定头部。例如可以在Apache2中使用LogFormatLogFormat %h %l %u %t \%r\ %s %b \%{Referer}i\ \%{User-Agent}i\ \%{x-middleware-subrequest}i\ custom正确设置此HTTP头部的日志记录后就可以使用Grep、Yara等常用工具。Snort (v2)以下Snort规则在用作IDS时可用于检测CVE-2025–29927的发生alert tcp any any - any any (msg:HTTP x-middleware-request header detected, possible CVE-2025-29927 explotation;content:x-middleware-subrequest; rawbytes; sid:10000001; rev:1)此规则检查数据包时不考虑任何协议例如http_headers模块。这是因为在撰写本文时HTTP头部 “x-middleware-request” 在Snort中不是被识别的头部。首先我们将Snort规则添加到本地规则中。在Ubuntu上默认位于/etc/snort/rules/local.rules。现在我们将粘贴上面的代码片段并保存。请注意如果您已有现有规则则需要将sid值更改为另一个值。编辑Snort的local.rulesubuntutryhackme-2404:~$sudonano/etc/snort/rules/local.rules# $Id: local.rules,v 1.11 2004/07/23 20:14:44 bmc Exp $# ----------------# LOCAL RULES# ----------------# This file intentionally does not come with signatures. Put your local# additions here.alert tcp any any -anyany(msg:HTTP x-middleware-request header detected;content:x-middleware-subrequest;rawbytes;sid:10000001;rev:1)现在我们可以运行Snort并测试检测。下面的终端以控制台模式运行Snort用于演示警报触发。Snort检测CVE-2025–29927ubuntutryhackme-2404:/var/log/snort$sudosnort-q-l/var/log/snort-iens5-Aconsole-c/etc/snort/snort.conf 03/24-20:16:13.424299[**][1:10000001:1]HTTPx-middleware-requestheader detected[**][Priority:0]{TCP}10.10.142.69:49432-10.10.219.251:3000ZeekZeek为网络流量中的威胁检测提供了更全面的机会。对于CVE-2025–29927可以使用以下Zeek规则module CVE_2025_29927; export { redef enum Log::ID { LOG }; global log_policy: Log::PolicyHook Log::IGNORE; event http_header(c: connection, is_orig: bool, name: string, value: string) { if (name x-middleware-subrequest value middleware) Log::write(HTTP::LOG, [$timestampc$start_time, $uidc$uid, $idc$id, $noteCVE_2025_29927_Exploit, $msgDetected HTTP header associated with CVE-2025-29927, $headername, $valuevalue]); notice_info(c, CVE-2025-29927 Exploit, fmt(The HTTP header %s associated with CVE-2025-29927 was detected, value)); } }确保将此文件以.zeek扩展名保存在Zeek脚本的配置目录中。您需要通过添加load ./cve_2025_29927.zeek来修改您的local.zeek以包含此脚本。最后通过sudo zeekctl deploy重启Zeek以应用配置更改。如果成功Zeek现在会在检测到CVE-2025-29927时发出警报[Connnection_ID] The HTTP header x-middleware-subrequest associated with CVE-2025-29927 was detected结论在本房间中我们介绍了此漏洞存在的原因以及如何利用它。查阅关于发现此漏洞的原始文章重要地提醒了我们在许多流行应用程序的源代码中仍然潜伏着许多漏洞。对于已打补丁的版本用户需要升级到以下版本Next.js 15.x 应升级到 15.2.3Next.js 14.x 应升级到 14.2.25Next.js 13.x 应升级到 13.5.9Next.js 12.x 应升级到 12.3.5如果无法打补丁唯一的缓解措施是阻止包含x-middleware-subrequest的HTTP请求到达您的Web应用程序。CSD0tFqvECLokhw9aBeRql9ywWnUrGrT72TdyN/gd6yOTLM3clGQjgD9J9Lx1TF8YNgmlAHUWHEmpgBYjdfmIVyFo6uEgdc/EtstmuLaFFqg3xQ/BFAz4rnVGyFjGTe更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询