拿到这道题,提示他会备份文件,首先访问index.php.bak
什么都没有,404没有这个
拿来扫描嘛,这网站又不给扫,直接429请求过多。直接拿网上的wp,后面有个www.zip将他下载下来看
代码审计:
也就是说可以GET传入一个参数,但是后面包含了class.php
这里讲一下知识点
__wakeup是在反序列化的时候会调用的函数,他有漏洞
__destruct是析构函数,就是请求结束后会销毁变量
说一下大致的流程,就是你传入参数,他会把它反序列化,然后调用__wakeup讲username=guest,然而我们需要username=admin才行。那就是不能让他执行,绕过他,并且password=100
传入
O:4:”Name”:2:{s:14:”Nameusername”;s:5:”admin”;s:14:”Namepassword”;i:100;}
修改了前面变量的值,绕过了__wakeup还是错
执行了
原来是因为。这俩是私有变量,要加上%00,私有变量在被反序列化的时候要加两个字节
O:4:”Name”:3:{s:14:”%00Name%00username”;s:5:”admin”;s:14:”%00Name%00password”;i:100;}