Thinkphp 5.1.37 反序列化利用链

参考文章: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部分,利用的范围增加了许多!

猜你喜欢

转载自www.cnblogs.com/zpchcbd/p/12642225.html