每天学习新的漏洞,react2shell漏洞

前言:

CVE-2025-55182(React2Shell

一年没有挖洞了,居然不知道去年有出现这个未授权就可以rce的漏洞

我一直以为是node.js漏洞,听同学说才知道是react漏洞,

半年多了,按道理来说这个漏洞应该已经修完了

但是我不相信,我想继续挖

正题:

知己知彼方能百战百胜,先了解下漏洞原理

这个和log4j的漏洞有点像,听说的CVE-2025-55182(React2Shell

面试官问

最近很火的react2shell漏洞原理,,如何回答

第一层:一句话概括(考察是否抓到本质)

这是一个位于 React Server Components (RSC) Flight 协议反序列化过程中的原型链污染漏洞,攻击者通过构造恶意引用,最终劫持 JavaScript 的 Function 构造函数实现任意代码执行。


第二层:技术细节(考察对 JavaScript 原型链和 React 内部机制的理解)

2.1 漏洞发生在哪里?

漏洞核心位于 React 服务端用于解析 Flight 协议数据的 reviveModel 函数。这个函数负责把客户端传来的序列化数据(chunks)还原成 JavaScript 对象。

2.2 根本原因是什么?

关键代码如下(简化):

javascript

复制代码
function reviveModel(value) {
    for (const key in value) {
        if (hasOwnProperty.call(value, key)) {  // ⚠️ 问题行
            value[key] = reviveModel(value[key]);
        }
    }
}

问题在于hasOwnProperty.call(value, key) 这个检查是在攻击者可控的对象 value 上执行的。

在 JavaScript 中,所有对象继承自 Object.prototype,包含 hasOwnPropertyconstructor__proto__ 等内置方法。如果攻击者能够覆盖或篡改 value.hasOwnProperty,就能让这个检查形同虚设,从而允许访问原型链上的敏感属性。

2.3 如何从原型链污染走向 RCE?

攻击者通过精心构造多个相互引用的 chunks,实现以下利用链:

步骤 操作 效果
1 制造一个带有 then 属性的对象(Thenable) 让 React 误以为它是一个 Promise
2 通过 $1:__proto__:then 语法沿原型链爬升 获取到 Chunk.prototype.then
3 通过 $1:constructor:constructor 拿到全局 Function 构造函数
4 将恶意代码字符串传入 Function() 在服务器上执行任意 JavaScript

简单说 :Flight 协议的设计允许引用跳转,而 reviveModel 在解析时没有限制原型链访问,导致攻击者可以从一个普通对象一路爬到 Function 构造函数。

明天挖洞这个漏洞,今天先睡觉了

语法

org="China Education and Research Network Center"&&app="next.js" && country="CN"

今天挖到厦门大学的信息泄露,嘻嘻,有实力了

相关推荐
red_redemption7 小时前
自由学习记录(181)
学习
wuxinyan1237 小时前
大模型学习之路007:RAG 零基础入门教程(第四篇):生成侧核心技术与大模型集成
人工智能·学习·rag
阿豪只会阿巴7 小时前
【没事学点啥】TurboBlog轻量级个人博客项目——Turbo Blog 项目学习与上线指南
开发语言·python·学习·状态模式
Slow菜鸟8 小时前
Docker 学习篇(三)| Docker安装指南(Linux版)
linux·学习·docker
Tutankaaa8 小时前
知识竞赛软件SaaS版 vs 本地部署
人工智能·经验分享·笔记·学习
小仙女的小稀罕8 小时前
培训要点写不完不会整理?规范培训转待办可这样操作
大数据·人工智能·学习·自然语言处理·语音识别
Wallace Zhang9 小时前
SimpleFOC源码学习10(v2.3.2) - 电流传感器CurrentSense.cpp与CurrentSense.h
驱动开发·stm32·学习·电流环·simplefoc·foc电机控制
小仙女的小稀罕10 小时前
适合销售从业者会议整理使用的销售录音转任务工具
大数据·人工智能·学习·自然语言处理·语音识别
普通网友11 小时前
HTML5新增了哪些重要标签?多多学习也是成长的一部分
前端·学习·html5
南境十里·墨染春水11 小时前
linux学习进展 mysql数据库
linux·数据库·学习