[SWPUCTF 2021 新生赛]pop
https://img2023.cnblogs.com/blog/3180821/202305/3180821-20230527154746502-211535689.png很明显了 反序列化 pop
构造pop链,主要还是 死盯 反序列化的魔法函数
从__destruct()入手,这里echo
可以调用到__toString
__toString 调用 function Getflag()
w44m类中两个变量并不是共有属性(关于属性文末有链接)
private:是PHP中类的私有成员
protected:是PHP中类的保护成员
所以我们就直接在类中进行赋值
如何调用w44m类中Getflag方法?
在w33m类中tostring方法,可以调用某一个类中的某一个方法。
因此可以给w33m类中的两个变量w00m=w44m类名,w22m=Getflag方法
如何调用w33m类呢?
destruct在对象被销毁时调用,所以给w22m类中的变量w00m一个类w33m就可以调用
pop链(在学校机房写的没有环境,找的php在线编译)
https://img2023.cnblogs.com/blog/3180821/202305/3180821-20230527155735310-1867415367.png
有私有属性的一定要url编码一下,会有不可见字符
https://img2023.cnblogs.com/blog/3180821/202305/3180821-20230527160102259-931178880.png
https://img2023.cnblogs.com/blog/3180821/202305/3180821-20230527191337361-2066317770.png
完整pop链
不了解属性的可以看看PHP类中public、protected、private的区别 PHP类中public、protected、private实例代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]