浅谈PHP反序列化漏洞
写在前面
PHP是一门 面向对象
编程的语言,对象是PHP中非常常见的概念,几乎所有的数据类型都可以作为对象来处理。
在PHP中,对象是一种复合数据类型,也称为 实例
。对象的定义和创建通常包括两个步骤:定义类
和 创建对象
。
在PHP中,可以通过序列化(serialize)和反序列化(unserialize)来保存和恢复对象。序列化是将对象转换为一种可以存储或传输的格式,反序列化则是将数据转换回对象。
如果反序列化过程中用户对某些参数可控,从而控制内部的变量设置函数,那就可以利用反序列化构造攻击。
1 2
| serialize() unserialize()
|
从0开始的 MoeCTF 开发之路
平台开发选用了最熟悉的语言 PHP
,最终选择使用 ThinkPHP
进行开发,后端均返回 JSON
数据,前端通过 ajax
进行实时渲染页面,陆陆续续开发了近一周的时间。
由于 MoeCTF
定位是 (小) 团队内部训练平台,所以没有进行任何优化 (其实是不会优化,但是尽量减少冗余代码啦,性能就不提了。
强国杯 2022 分区赛 Writeup
Web
Execute command
打开环境发现 It works!
外加 Apache 2.2.49
,感觉是 CVE-2021-41773