参考文章:https://blog.riskivy.com/挖掘暗藏thinkphp中的反序列利用链/?tdsourcetag=s_pctim_aiomsg
自己就跟着走一遍体会下!
反序列化的常见起点:
__wakeup 一定会调用
__destruct 一定会调用
__toString 当一个对象被反序列化后又被当做字符串使用
反序列化的常见中间跳板:
__toString 当一个对象被当做字符串使用
__get 读取不可访问或不存在属性时被调用
__set 当给不可访问或不存在属性赋值时被调用
__isset 对不可访问或不存在的属性调用isset()或empty()时被调用
形如 $this->$func();
反序列化的常见终点:
__call 调用不可访问或不存在的方法时被调用
call_user_func 一般php代码执行都会选择这里
call_user_func_array 一般php代码执行都会选择这里
现在又多了phar反序列化的利用方式,能够反序列化其metadata部分,利用的范围增加了许多!