原理
解题过程
查看原代码没啥提示,看到有备份网站
常见的备份文件后缀名: .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
标签:极客,PHP,2019,原代码,wakeup,序列化,bak From: https://www.cnblogs.com/BEONTHE/p/17749042.html