php_unserialize_03
题目描述:
# 挑战03:PHP反序列化对象注入
题目提示:
难度: ★★★★☆ (较难)
描述
这是一个管理员面板应用,它使用PHP的序列化功能存储管理员配置到Cookie中。应用程序尝试通过过滤危险函数名(如eval、exec和system)来阻止恶意利用,但忽略了对象注入可以通过包含文件操作实现同样的效果。
目标
利用PHP反序列化对象注入,构造恶意序列化数据,读取系统中/flag
文件的内容。
提示
- 分析
PluginManager
类的__destruct
方法中的include
操作 - 注意
Template
类的__toString
方法可以读取任意文件 - 思考如何利用这些类的交互创建一个能包含读取
/flag
文件的PHP代码片段 - 可以使用PHP伪协议(如php://filter)来读取文件内容