千家信息网

如何理解PHP反序列化漏洞

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇文章为大家展示了如何理解PHP反序列化漏洞,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。序列化是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化
千家信息网最后更新 2025年01月20日如何理解PHP反序列化漏洞

本篇文章为大家展示了如何理解PHP反序列化漏洞,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

序列化

是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。[将状态信息保存为字符串]

反序列化

反序列化就是再将这个状态信息拿出来使用(重新再转化为对象或者其他的)[将字符串转化为状态信息]

特殊写法

相当于

常见函数

__FILE__ 获取当前文件路径
show_source() 显示文件源码
print_r() 可以输出非字符串

常见魔术方法

__construct() 对象创建时(new)自动调用,但在unserialize()时不会自动调用
__destruct() 对象销毁时自动调用
__wakeup() 使用unserialize()函数时自动调用
__toString() 当对象被当作字符串输出时自动调用

flag in ./flag.phpsource, true);  }}if(isset($_GET['source'])){  $s = new readme();  $s->source = __FILE__;  echo $s;  exit;}//$todos = [];if(isset($_COOKIE['todos'])){  $c = $_COOKIE['todos'];  $h = substr($c, 0, 32);  $m = substr($c, 32);  if(md5($m) === $h){      $todos = unserialize($m);  }}if(isset($_POST['text'])){  $todo = $_POST['text'];  $todos[] = $todo;  $m = serialize($todos);  $h = md5($m);  setcookie('todos', $h.$m);  header('Location: '.$_SERVER['REQUEST_URI']);  exit;}?>

Readme

Check Code

首先定义了一个类,里面的_toString()是一个魔术方法,
表示将Readme.txt和source里面的代码拼接在一起,并高亮显示。
判断get传参中是否有source字符串,
再创建一个readme类的对象s,并将当前文件路径的值,赋值给变量s的参数source,
最后输入s。
判断cookie传参中是否有todos字符串,
如果有将cookie传参的todos字符串赋给变量c,
变量h表示截取变量c从开始到第32位的字符串,
变量m表示变量c 32位以后构成的字符串,
当变量m进行md5加密后的值等于变量h时,输出反序列化的变量m。
表示遍历输出todos,会触发_toString()方法,
Readme.txt文件是写死的,只有变量source是可控的,
因此可以通过将FILE改为flag.php来返回flag.php的内容。

上述内容就是如何理解PHP反序列化漏洞,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

变量 字符 字符串 序列 对象 状态 信息 文件 输出 内容 方法 存储 漏洞 函数 可以通过 就是 常见 技能 知识 路径 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库技术第二章题目 邯郸计算机应用软件开发服务费 末日危机怎么看自己在哪个服务器 数据库基本语句中的常见符号 漳州一职计算机网络技术分数线 实习软件开发岗位名称 数据库的例题画图 数据库一般存储在线交易数据 紫色监控能做服务器硬盘用吗 如何查看学校数据库 享道出行软件开发待遇 网络安全防护基础不完善 杭州软件开发公司哪个好 如何在网上做软件开发兼职 2019垃圾处理数据库 电子政务数据库技术概述 软件开发对应专业 万方数据库除了下载论文 mysql数据库分 金灿灿之战服务器满了怎么办 阜阳软件开发公司 新益华医疗软件开发怎么样 国企网络安全重要性 党员如何维护网络安全环境 山雨欲来服务器 紫色监控能做服务器硬盘用吗 公安局网络安全岗位难吗 数据库培训价格 互联网金融科技公司干啥的 腾讯怎么保证硬件服务器安全
0