CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

admin 2024年12月22日18:36:09评论159 views字数 2996阅读9分59秒阅读模式

起因

在刷推特的时候看到的有关一个next.js的未授权访问漏洞

创建了一个列表,主要是有关POC和漏洞情报的,师傅们感兴趣可以加一下,有推荐的up主也可以联系我添加

情报列表:https://x.com/i/lists/1863661568082522557
CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

于是就进行了搜索,发现有个师傅分享了一个可疑的POC,就想着去学习一下next.js有关的内容,顺便看看有没有机会进行一下漏洞POC的验证

CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

Next.js的应用常见

15min快速上手nextjs_哔哩哔哩_bilibili[2]

简单来说Next.js和Node.js作用有点像,可以作为后端服务器进行数据的返回处理,同时可以将其REACT进行结合,其可以编写后端的代码,并且后端部分的代码是无法在前端看见的,对于一些单页面应用(SPA)的安全性有很大的提高(简单点来说就是大多数都是通过js完成的应用,提供一定的安全性,不然全都的代码都在前端进行显示,存在很大的安全问题)

简单来说,Next.js不仅是一个前端框架,它还提供了强大的后端功能,使你能够在一个统一的代码库中同时编写前后端代码。这种全栈开发模式结合了Node.js的强大后端能力和React的优秀前端体验,有效地提升了单页面应用的安全性和性能

Next.js作为后端功能的时候的模式

https://juejin.cn/post/7436395564998426664

网上的教程讲的相对复杂,我将其进行了分类,本质上就分为两类,

一类是html在前端才进行渲染的前后端分离的模式:CSR模式

另一类是直接返回渲染好的html的模式:SSR模式,CSR模式,ISR模式

前后端分离模式(CSR模式)

这个最好理解,就是我们常见的前后端分离的框架,前端通过js去请求后端接口,然后再进行数据渲染,所以他的鉴权本质上和后端的api接口才有关!!

直接返回渲染好的html

SSR模式

简单来说就是在每个请求后,都会在后端渲染一个html页面,进行返回

SSG模式

简单来说在网站搭建的时候就会生成html静态页面了,在后续请求的时候是不会进行改变的

ISR模式

简单来说就是将SSR和SSG进行了结合,在部署的时候就生成了html页面(SSG),在后续会根据条件或者时间进行html页面的重新生成并返回(SSR)

漏洞POC

/admin?__nextLocale=anything# 其中/admin为网站对应的后台页面# 个人测试anything可以是任何东西,但是不能和后台路径一样,也就是不能为/admin?__nextLocale=admin

漏洞的触发条件

1. 基于路径名的中间件中执行授权(SSG,ISR的一种形式)

2. 9.5.5 < Next.js <14.2.14

漏洞的描述

Next.js 是一个用于构建全栈 Web 应用程序的 React 框架。在受影响的版本中,如果 Next.js 应用程序正在基于路径名的中间件中执行授权,则可能会绕过应用程序根目录下的页面的此授权,允许未经授权访问Next.js应用程序中的根级页面,这些页面本应受到授权检查的保护

FOFA: app="NEXT.JS"
CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

漏洞复现

访问网站的后台页面

https://xxx.xxx.xxx/admin[3]

发现存在鉴权,会直接进行返回到/auth页面

CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

使用poc进行访问

https://xxx.xxx.xxx/admin?__nextLocale=111
CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

对该漏洞的理解

简而言之:这个漏洞能绕过前端路径的鉴权,如果其直接返回了完整的html页面,危害就会很大,能获取到全部的数据,又或者采用的是前后端分离的模式(CSR),如果存在前端路径的鉴权能够用该方式进行前端鉴权的绕过(有很多没有前端路径的鉴权,就不需要使用该方法了,直接访问也是可以正常后台页面的),但是能否存在有效数据,就和其后端鉴权有关了,但是可以访问后台页面,可以更方便的测试接口(例如绕过vue路由守卫!),如果api有鉴权,那么这个漏洞危害很有限,所以遇到next.js的站点还是可以试试。

漏洞的局限性

允许未经授权访问Next.js应用程序中的根级页面,这些页面本应受到授权检查的保护

该漏洞的危害是可以访问Next.js应用程序中的根级页面,也许这些页面本来是有鉴权的,但是这并不意味着你可以获取到数据,所以网站使用不同的Next.js的模式有着很大的关系,如果使用的CSR模式,类似常规的前后端分离的结构,那你本质上就只是绕过了前端的检验而已,并没有绕过他的接口的鉴权,所以也不一定存在未授权的问题!!

CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

危害体现(个人感觉和next.js的使用方式有关)

1. 直接返回了HTML页面,并且只使用路径作为鉴权(危害最大)(SSR,SSG,ISR模式)

他将路径作为鉴权的方式,当可以访问这个页面的时候,服务器就会渲染出好的html直接返回,就不存在后续的接口的鉴权,所以绕过了路径作为鉴权,就是绕过了全部的鉴权,这种的危害是最大的,能直接获取到完整的数据

http://xxx.xxx.xxx/admin/blog?__nextLocale=anything
CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)
CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

2. 本身就存在漏洞(方便测试)(CSR模式,但是本身api存在未授权)

http://xxx.xxx.xxx/admin/users?__nextLocale=anything

    刚访问的时候为一个基础的模板

CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)
CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

访问后会请求接口

CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

最后渲染数据

CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

3. 只是绕过了前端(虚假的未授权)(CSR模式,但是本身api不存在未授权)

CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

4. 本身对前端路由就没有鉴权

这种情况访问/admin,和/admin?__nextLocale=anything 的效果是一样的,都能访问,这种情况就和漏洞没有关系了,还得看他的api是否鉴权

https://xxx.xxx.xxx/admin
CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)
https://xxx.xxx.xxx/admin?__nextLocale=anything
CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

引用链接

[1]https://x.com/i/lists/1863661568082522557https://x.com/i/lists/1863661568082522557[2] 15min快速上手nextjs_哔哩哔哩_bilibili: https://www.bilibili.com/video/BV14t4y187Kk/?buvid=XUC54AEC021C181D8552EB6AED44230A3865A&is_story_h5=false&mid=XUTX26WvADq3O7z3v4emRg%3D%3D&p=1&plat_id=168&share_from=ugc&share_medium=android&share_plat=android&share_session_id=b0c135c5-91ab-4a30-85a6-1a74c45a7ab2&share_source=WEIXIN&share_tag=s_i&spmid=main.my-history-search-result.option-more.0×tamp=1734708206&unique_k=5AAYtYt&up_id=16948004

 

原文始发于微信公众号(WingBy安全团队):【首发1day详情】CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月22日18:36:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)https://cn-sec.com/archives/3539843.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息