[极客大挑战 2019]PHP

发布时间 2023-10-08 14:46:54作者: 圆弧状态

原理

解题过程

查看原代码没啥提示,看到有备份网站

常见的备份文件后缀名: .git .svn .swp .~ .bak .bash_history
尝试是否存在index.php的备份。如index.php.bak,又或者www.zip等等,如果没找到就只能用目录扫描工具了
下载www.zip压缩包,得到原代码

需要我们传递select然后反序列化拿到flag,分析可知只要username=admin,password=100即可,但是wakeup函数最后也会让username变成guest的
想到一个漏洞。这里应该绕过wakeup()方法,避免wakeup()执行。

这里存在一个CVE漏洞:当成员属性数目大于实际数目时可绕过wakeup方法

需要注意private声明需要特殊处理

对生成的字符串做修改

这次学到了类的函数可以不用加进来进行序列化,只取关键部分即可
最后拿到flag

参考文章:https://zhuanlan.zhihu.com/p/366455343