千家信息网

PHP中session反序列化的示例分析

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,小编给大家分享一下PHP中session反序列化的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!session反序列化的漏洞是由三种不同的反序列化引擎所产生的的漏洞其中ses
千家信息网最后更新 2025年11月09日PHP中session反序列化的示例分析

小编给大家分享一下PHP中session反序列化的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

session反序列化的漏洞是由三种不同的反序列化引擎所产生的的漏洞

其中

session.serialize_handler string--定义用来序列化/反序列化的处理器名字。默认使用php

若使用如下设置:

则改变了序列化的引擎

save_path则是session的存放路径 我们可以通过改变ini_Set来查看不同引擎下的序列化的类型

三种引擎的存储格式:

php : a|s:3:"wzk";php_serialize : a:1:{s:1:"a";s:3:"wzk";}php_binary : as:3:"wzk";

漏洞产生在于

php引擎的存储格式是键名 |serialized_string,而php_serialize引擎的存储格式是serialized_string。如果程序使用两个引擎来分别处理的话就会出现问题。
session_start() 会创建新会话或者重用现有会话。 如果通过 GET 或者 POST 方式,或者使用 cookie 提交了会话 ID, 则会重用现有会话。

所以如果存在两种不同的引擎,就可以利用session_start()的自动反序列化,把我们想要传输的数据传输到服务器中:

eg:

代码1:用来保存在本地一个session

代码2:

name;    }}

用于读取session然后进行反序列化 若wakeup方法被调用则说明反序列化成功

nage =  "swaggyp";$a->age = "1111";echo serialize($a);//O:7:"student":3:{s:4:"name";N;s:3:"age";s:4:"1111";s:4:"nage";s:7:"swaggyp";}

该代码用于生成一个一个序列

参考于:

生成后,在1中传入这段序列化的值并在开头加入 | 则在第二个文件被解析的时候,就会把|后的内容直接当成一个类去解析 实现我们的目的

成功了

php 这个session.serialize_handler 将 | 后的字符串反序列化,导致产生恶意对象。

upload过程中会产生session,存在一个键值对的值为filename(可控),如果filename被我们修改为|+序列化对象字符串(特殊字符记得转义),filename |后的内容就会被认为是序列化的内容,进而反序列化产生恶意对象(实际上PHP中session是写到文件中的,我们暂且忽略这一中间步骤对此处并无影响),在对象自毁时去执行__destruct()内的语句

S E S S I O N 中 的 键 值 就 会 为 _SESSION中的键值就会为 SESSION中的键值就会为_SESSION["upload_progress_ryat"],在会话上传过程中,将对会话数据进行序列化/反序列化,序列化格式由php.ini中的session.serialize_handler选项设置。 这意味着,如果在脚本中设置了不同的serialize_handler,那么可以导致注入任意session数据

题目:

mdzz = 'phpinfo();';    }    function __destruct()    {        eval($this->mdzz);    }}if(isset($_GET['phpinfo'])){    $m = new OowoO();}else{    highlight_string(file_get_contents('index.php'));}?>

构造登录框和payload

看完了这篇文章,相信你对"PHP中session反序列化的示例分析"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

序列 引擎 不同 对象 格式 代码 内容 字符 数据 漏洞 存储 示例 分析 成功 字符串 恶意 文件 篇文章 过程 传输 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津耀成网络技术合伙企业 html连接数据库模板 vb读取图片文件数据库 网络安全法第三章第一节 数据库的主要目的 mqtt+网络安全 苹果登录显示连接id服务器出错 会员管理软件开发语言 苏州海航软件开发答疑解惑 计算机网络技术目标职业前景 数据通信网络技术填空题 零极分布式应用网络技术未来价值 杭州优溜网络技术 护苗网络安全课体会200字 泰拉瑞亚本地联机找不到服务器 中国最厉害的网络安全系统 数字贸易壁垒限制指数数据库 网络安全工程师专业的大学 云服务器安全组连接不上易语言 无线传感网络技术英文 数据库的代码及格式 数据库中中间件指什么 plsql 不显示数据库 耳伴 服务器维护 南通如皋网络安全员赵蕊 上海莜贝网络技术有限公司 互联网科技动态ppt 宁海应用软件开发系统 数据库和c语言怎么学 中国最厉害的网络安全系统
0