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

小迪web自用笔记62

反序列化框架

黑盒和几乎发现不了,因为这是代码特性。

原生态是看自己的代码以及魔术开关方法开了没,你框架的话就得直接看漏洞了,固定的玩意儿。

 

 

把反序列化漏洞的利用写在了项目里。

项目

 你的理解是准确的,这类反序列化工具的使用逻辑确实是选择目标框架(是PHP类还是Java类)→匹配漏洞版本→生成 payload 并自动化攻击,具体流程如下:

 

1. 选择目标框架

 

工具(如 PHPGGC、YSoSerial)内置了不同技术栈的框架支持(如 PHP 的 ThinkPHP、Java 的 Commons Collections 等),需先确定目标应用使用的框架类型(如 Laravel、Struts2 等)。

 

2. 匹配漏洞版本

 

每个框架的不同版本可能存在不同的反序列化 Gadget 链(漏洞利用路径),工具会针对框架版本预设对应的利用逻辑。例如 PHPGGC 对 ThinkPHP 3.x、5.x 有不同的 payload 生成策略。

 

3. 生成恶意 payload

 

根据框架和版本,工具会自动构造包含恶意逻辑的反序列化数据(如 PHP 的序列化字符串、Java 的序列化字节流)。

 

4. 自动化攻击

 

将生成的 payload 发送到目标应用的反序列化入口(如接收序列化数据的接口),触发漏洞后即可实现代码执行、权限提升等自动化攻击效果。

 

这类工具的核心价值就是将复杂的 Gadget 链构造过程自动化,让攻击者能快速针对特定框架版本的漏洞发起攻击。

例子

Phpthink

 框架版本

首页展示

这张图片原本是一个首页图片,底下有个反序列化的东西(类?)

然后最底下的一眼就可以看出来是反序列化函数。

wekeup魔术方法,但是搜不到,因为他是第三方的框架,不是原生态,所以原生态有些写法没有。

所以基于框架版本搜索漏洞。

 

 例子

 这个地址泄露了源码

 yi.js

 可以看到这是框架,而且还是2.0的版本。

 这些命令是利用PHPGGC工具针对Yii2框架的远程代码执行(RCE)漏洞生成恶意 payload,用于执行系统命令,属于Web安全领域的漏洞利用操作。以下是具体命令的解释:

 

1.  ./phpggc Yii2/RCE1 

 

- 作用:查看 Yii2/RCE1 漏洞利用链的信息,包括版本范围(<2.0.38)、攻击类型(命令执行)和触发点( __destruct 魔术方法)。

- 背景:Yii2框架2.0.38版本之前存在反序列化漏洞,攻击者可构造恶意序列化数据,在目标系统执行任意命令。

 

2.  ./phpggc Yii2/RCE1 system 'tac /fla*' --base64 

 

- 作用:生成针对 Yii2/RCE1 的Base64编码payload,执行系统命令 tac /fla* (用于读取以 fla 开头的文件,如flag文件)。

- 原理:利用 system 函数执行系统命令,通过Base64编码避免传输过程中字符被过滤,常用于渗透测试中获取目标系统的敏感信息。

 

3.  ./phpggc Yii2/RCE1 exec 'cp /fla* tt.txt' --base64 

 

- 作用:生成Base64编码payload,执行系统命令 cp /fla* tt.txt (将以 fla 开头的文件复制为 tt.txt ,用于备份或篡改文件)。

- 原理:通过 exec 函数执行系统命令,实现文件操作,是漏洞利用中控制目标系统文件的常见手段。

 

这些命令的本质是利用PHP反序列化漏洞,通过工具快速生成攻击载荷,属于Web安全攻防中“漏洞利用”环节的操作,常用于渗透测试或漏洞验证场景。

通过远程代码执行,把文件读出来,然后再在自己的网站上看。

 

看到USERIALIZE,就控制里面的变量,利用它来发包。

*看版本,看代码里能不能触发。

 

 你要让这个链执行什么命令,然后他直接给你自动生成这大概就是这个项目的功能。

 

 

 

蓝色的是PHP的 unserialize 函数,它的作用就是反序列化。

 

具体来说,这段代码会接收POST参数 data 中的内容,通过 unserialize 对其进行反序列化操作。这在安全领域是一个风险点——如果攻击者构造恶意的序列化数据传入,就可能触发PHP反序列化漏洞,从而执行任意代码,属于Web安全中需要重点关注的漏洞类型之一。

反序列化漏洞漏洞中包含的东西可控,感觉就算挖到了。

 

如何自己发现框架漏洞:

那就是代码审计,敲代码去吧。

62居然有博客,我感觉我可以看一下。

 看一下常见跳板有没有逻辑错误(就和报错💩代码一样。

多打代码,看源码,然后熟悉架构,熟悉安全就可以了。

这么多的恋都是为了触发反序列化的逻辑。

看有没有触发点,再加上这个版本有没有漏洞。

 后面有项目搭建。反序列化漏洞的产生主要源于程序对反序列化输入的安全控制不足,结合PHP等语言的对象生命周期机制(魔术方法)和第三方组件缺陷,具体可从以下几点分析:

 

1. 反序列化的机制特性

 

序列化是将对象转换为可存储/传输的字符串格式,反序列化则是将该字符串还原为对象。在这个过程中,若程序未对反序列化的输入做严格校验,攻击者可构造恶意序列化字符串,让程序在反序列化时执行非预期操作。

 

2. 魔术方法的“自动执行”风险

 

PHP等语言中存在大量**“魔术方法”(如 __construct 、 __destruct 、 __wakeup 等),这些方法会在对象的创建、销毁、唤醒等生命周期阶段自动调用**。

若攻击者能通过反序列化控制对象的创建或唤醒,就能强制触发这些魔术方法,进而执行恶意代码(比如在 __destruct 中执行系统命令)。

 

3. 第三方库/框架的缺陷

 

很多Web框架(如Yii2、Laravel)或第三方组件在实现反序列化时,可能存在逻辑漏洞或危险的魔术方法调用。例如:

 

- 某些框架的反序列化过程会调用带有命令执行能力的方法;

- 第三方库的类在反序列化时,未对输入进行过滤,直接触发了危险操作。

 

4. 输入验证的缺失

 

程序在接收反序列化数据(如通过 $_POST['data'] 接收)时,若未对数据的来源、格式、内容做校验,攻击者可自由注入恶意序列化字符串,从而利用上述机制触发漏洞。

 

简言之,反序列化漏洞是“恶意输入 + 自动执行的魔术方法 + 组件缺陷/校验缺失”共同作用的结果,最终导致攻击者可通过构造序列化数据执行任意代码。

反序列化链的过程

 

 

http://www.dtcms.com/a/482218.html

相关文章:

  • Nginx 代理 WebSocket 失败排查全过程:从 426 到连接成功的完整复盘
  • multi-head attention 多头注意力实现细节
  • 第七章 完整的模型训练
  • 08-Vue3组合式API最佳实践指南
  • 山东网站建设网站做全世界的生意的网站
  • 【文献分享】通过基于大型语言模型嵌入的蛋白质的 k 均值聚类来探索同源性检测
  • Redis 黑马点评-优惠券秒杀
  • 网站页面示意图怎么做宁波北仑做网站
  • ffmpeg转化mp3至wav格式
  • 不同类型的 3D 文件格式
  • ElasticSearch 实战:全文检索与数据聚合分析的完整指南​
  • Day62 设备驱动程序开发基础与LED控制
  • 支持Word (doc/docx) 和 PDF 转成一张垂直拼接的长PNG图片工具类
  • JAVA同城预约服务家政服务美容美发洗车保洁搬家维修家装系统源码小程序+公众号+h5
  • 正规拼多多代运营公司如何优化网站结构
  • 三层前馈神经网络实战:MNIST手写数字识别
  • 深度学习(四)
  • 学习HAL库STM32F103C8T6(MQTT报文)
  • 【C++】C++11特性学习(1)——列表初始化 | 右值引用与移动语义
  • 网站布局 种类手机商城页面设计
  • 如何建设手机端网站电力公司建设安全文化
  • 红色 VR 大空间:技术赋能红色文化传承的运营价值与实践路径
  • 网络协议工程 - eNSP及相关软件安装 - [eNSP, VirtualBox, WinPcap, Wireshark, Win7]
  • WHAT - 前端性能指标(交互和响应性能指标)
  • 专业的媒体发稿网
  • dede旅游网站模板wordpress教学主题
  • 做网站的技术性说明怎么自己做微网站吗
  • VScode安装以及C/C++环境配置20251014
  • 黄页网站大全通俗易懂wordpress 数据库配置错误
  • 常规的红外工业镜头有哪些?能做什么?