写在前面的话
最近一直在刷题,写了挺多反序列化类型的题目,发现了一些触发魔术方法的点,就想在这里系统总结一下。
__toString方法:
一般来说,在CTF题里,调用__toString方法都是用echo、return一些字符串来调用,或者是用md5等函数来返回。但是最近做的一些题让我又有了新得认识。
1、在进行弱类型比较的时候可以调用__toString方法
这里对myan类中的emo属性进行再new myan。在__destruct中判断应该会不成功,我们接着单步调试一下。
可以发现它进入了__toString方法中。
最终成功实现了调用。
2、在进行正则匹配时可以调用__toString方法
这里正则匹配应该会不成功,我们单步调试看看。
在匹配不成功后,发现调用了__toString方法。
后续有更多好玩的姿势再接着更新。