PHP中关于session对象反序列化过程,你熟悉吗?

更新于
2026-09-28 19:51:09
1阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计893个文字,预计阅读时间需要4分钟。

PHP中关于session对象反序列化过程,你熟悉吗?

session反序列化的漏洞是由三种不同的反序列化引擎所产生的漏洞,其中+session.serialize_handler+string--定义用来序列化/反序列化的处理器名称。默认使用php,若使用如下设置:

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

其中

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

若使用如下设置:

<?php //ini_set('session.serialize_handler', 'php'); //ini_set("session.serialize_handler", "php_serialize"); ini_set("session.serialize_handler", "php_binary"); phpinfo();

则改变了序列化的引擎

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。如果程序使用两个引擎来分别处理的话就会出现问题。

阅读全文

本文共计893个文字,预计阅读时间需要4分钟。

PHP中关于session对象反序列化过程,你熟悉吗?

session反序列化的漏洞是由三种不同的反序列化引擎所产生的漏洞,其中+session.serialize_handler+string--定义用来序列化/反序列化的处理器名称。默认使用php,若使用如下设置:

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

其中

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

若使用如下设置:

<?php //ini_set('session.serialize_handler', 'php'); //ini_set("session.serialize_handler", "php_serialize"); ini_set("session.serialize_handler", "php_binary"); phpinfo();

则改变了序列化的引擎

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。如果程序使用两个引擎来分别处理的话就会出现问题。

阅读全文