今天做题的时候做了这一道。。刷新了对反序列化的认识。。
这道题考察了关于session序列化选择器的漏洞。。
参考文章:https://www.jb51.net/article/107101.htm
首先先介绍一下,关于session反序列化的三种机制:
首先在php.ini中关于session的设置:
session.save_path="" #设置session的储存路径
session.save_handler="" #设定用户自定义存储函数,如果想使用PHP内置会话存储机制之外的可以使用本函数(数据库等方式)
session.auto_start boolen #指定会话模块是否在请求开始时启动一个会话,默认为0不启动
session.serialize_handler (php | php_serialize | php_binary) #定义用来序列化/反序列化的处理器名字。默认使用php(重漏洞原因)
下面介绍session三种序列化的机制。。
php #键名+竖线(|)+经过serialize()函数处理过的值
php_serialize #经过serialize()函数处理过的值,会将键名和值当作一个数组序列化
php_binary #键名的长度对应的ascii字符+键名+经过serialize()函数序列化后的值
好了,接下我们进入题目看一看: