当前位置: 首页 > article >正文

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

绪论

如果各位师傅觉得有用的话,可以给我点个关注~~ 如果师傅们有什么好的建议也欢迎联系我~~ 感谢各位师傅的支持~~

46efdf9b0f46665c0f1841f400539a3f.png

正文部分

声明

  1. 1. 本漏洞根据网上的资料和我自己的理解去复现,并不确定就是cve-2024-51479的最终细节

  2. 2. 尝试在互联网进行复现,虽然可以成功复现,但是案例并不算很多,所以不能保证为漏洞的最终细节

  3. 3. 只在漏洞应用上进行了漏洞的理解和分析,没有基于源码进行探究,如果有问题希望各位师傅指出

  4. 4. 对于Next.js,也是在发现漏洞详情后进行研究的,可能存在一些欠缺,如果有问题欢迎提出

起因

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

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

情报列表:https://x.com/i/lists/1863661568082522557 82f765e93f3241a6ece0de9116912bd3.png

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

8bebf0b9a077ce7691f7620a6c68482d.png


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"

92f2d00f796305c0d5ade540769172ca.png


漏洞复现

访问网站的后台页面

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

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

a688c72e861810fb22d1dbdf22503281.png

使用poc进行访问

https://xxx.xxx.xxx/admin?__nextLocale=111

9c167408b79603266979c1c6a72f8bcd.png

对该漏洞的理解

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

漏洞的局限性

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

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

5fb542791857f56ded0e8b46392a190b.png

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

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

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

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

390e4978f7a5af716f3b25dfdb79cd7f.png

0e8fd8c8b4936719ebbc66639b4d7694.png

2. 本身就存在漏洞(方便测试)(CSR模式,但是本身api存在未授权)
http://xxx.xxx.xxx/admin/users?__nextLocale=anything

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

cf711c0ed43823741554c75721659d6b.png

485a34eb9fb25be217779640d051c29b.png

访问后会请求接口

7e74b1fe2132b072f78cd7bbb188044a.png

最后渲染数据

6cf82c9293149228666b4e7b98972012.png

3. 只是绕过了前端(虚假的未授权)(CSR模式,但是本身api不存在未授权) 
b4691e9476ce0e1f3d2da6639ec06c9f.png
fb84e6df9a0b6a87ee4852682816015f.png
4. 本身对前端路由就没有鉴权

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

https://xxx.xxx.xxx/admin

3628ab41e61c6c01cbaa15d32e7e2e41.png

https://xxx.xxx.xxx/admin?__nextLocale=anything

a67852f30c6c686093045496f94d22f5.png

引用链接

[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小密圈,他来了!

f90c0bc5a25021f714c6f11e940991f5.png

注意:帮会和星球是为了考虑大家的方便习惯,福利和内容是一致的,后续更新也是一致的~~~只需要进行一次付费就可以啦~~(建议还是使用帮会)

项目合作

有甲方大大,或者厂商师傅,或者其他的项目,欢迎咨询,我以及团队始终将客户的需求放在首位,确保客户满意度~~

目前主要的服务范围:

1. 渗透测试、漏洞扫描

2. 代码审计

3. 红蓝攻防

4. 重保以及其他攻防类项目

5. 红队武器化开发以及蓝队工具开发

6. CTF相关赛事的培训等

7. cnvd,cnnvd,edu,cve等证书

8. nisp,cisp等证书


http://www.kler.cn/a/449639.html

相关文章:

  • LeetCode 343.整数拆分
  • 软件测试之测试用例
  • C/C++基础错题归纳
  • 为什么要用云电脑玩游戏?5大好处揭秘,ToDesk云机性能强又易用
  • 绕组识别标签规范
  • 前端下载文件的几种方式使用Blob下载文件
  • uni-app开发完成app上传OPPO认定为马甲包如何处理?
  • 计算机网络压缩版
  • 【漏洞复现】CVE-2022-23544 SSRF
  • 机器学习实战32-利用机器学习对电商销售数据进行归因分析的方法,旨在找出销量下降的原因
  • macOS Sequoia 15.2 发布下载,带来 Apple 智能重大更新
  • MySQL实战之数据管理
  • pytorch中torch.nn.functional.normalize、nn.norm和LayerNorm计算中的区别
  • Java CPU飙升 排查
  • pytorch MoE(专家混合网络)的简单实现。
  • 【网络安全】网站常见安全漏洞—服务端漏洞介绍
  • Linux提示Could not resolve host
  • 30多种独特艺术抽象液态酸性金属镀铬封面背景视觉纹理MOV视频素材
  • 【Java基础面试题031】Java运行时异常和编译时异常之间的区别是什么?
  • 验证 Dijkstra 算法程序输出的奥秘
  • 12.12深度学习_CNN_项目实战
  • 武汉火影数字3D光影秀打造 “光+影+文化+故事+演艺“完美融合
  • Redis 事务处理:保证数据完整性
  • 深入理解Redis
  • 期权VIX指数构建与择时应用
  • windos 安装docker