PHP反序列化原理:
未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,从而导 致代码执行、SQL注入、目录遍历等不可控后果。在反序列化的过程中自动触发了某些魔术 方法。当进行反序列化的时候就有可能会触发对象中的一些魔术方法。
php序列化与反序列化的关键函数:
serialize() 将一个对象转换成字符串
unserialize() 将字符串还原成一个对象
序列化后内容格式:object=对象
图片中有些问题,如果对象是数值型时,不需要写长度,并且不加双引号,比如上边的正确 写法是i:19;
输出的结果是s:9:"xiaodi123";
小知识:==是值相等、===是全相等,值类型也要相同
区分反序列化用到的技术有类与无类可以通过看是否有class有即为有类,有类的地方就会 有魔术方法,
https://www.cnblogs.com/20175211lyz/p/11403397.html
目前的理解就是当代码运行中触发了某条件,对应的魔术方法就会被执行 对于有类的ctf题目,只需要分析代码,触发什么条件会输出什么,分析后输入相应的序列 化字符串,即可。
翻译
搜索
复制
<iframe></iframe> 标签:触发,有类,PHP,魔术,字符串,序列化 From: https://www.cnblogs.com/TinKode123/p/17714349.html