目录
带你走进PHPsession反序列化漏洞
0x0写在前面
0x0什么是PHPsession
0x03PHPSession的工作流程
0x04PHPsession在PHP.ini中的配置
0x05PHPsession的存储机制
PHP处理器
PHP_binary处理器
PHP_serialize处理器
0x06PHPbug#70
0x07实例说明PHPsession反序列化
0x08总结
0x09参考
带你走进PHPsession反序列化漏洞0x0写在前面前些天打了巅峰极客,遇到了一题session反序列化,借此机会整理一下PHPsession反序列化的前生今世,愿与君共勉,如若有错,还望斧正
0x0什么是PHPsession谈PHPsession之前,必须要知道什么是session,那么到底什么是session呢?
Session一般称为“会话控制“,简单来说就是是一种客户与网站/服务器更为安全的对话方式。一旦开启了session会话,便可以在网站的任何页面使用或保持这个会话,从而让访问者与网站之间建立了一种“对话”机制。不同语言的会话机制可能有所不同,这里仅讨论PHPsession机制。
PHPsession可以看做是一个特殊的变量,且该变量是用于存储关于用户会话的信息,或者更改用户会话的设置,需要注意的是,PHPSession变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的,且其对应的具体session值会存储于服务器端,这也是与cookie的主要区别,所以seesion的安全性相对较高。
0x03PHPSession的工作流程会话的工作流程很简单,当开始一个会话时,PHP会尝试从请求中查找会话ID(通常通过会话cookie),如果发现请求的Cookies、Get、Post中不存在sessionid,PHP就会自动调用PHP_session_cate_id函数创建一个新的会话,并且在