打开靶机
提示有备份,可以用工具扫描,我还没有配置好环境,搜了一下其他师傅的:备份的地址在这:
/www.zip
下载后得到这几个文件:
index.php就是上面打开的网页,其中有一段php代码:就是说引用class.php,然后把通过get传入的参数反序列化
class.php,定义了一个Name对象,当Name.username=admin;Name.password=100时,给出flag。这里的难点在于,Name实例化的时候会调用wakeup函数,把username修改为guest
解决的方法利用反序列化中,当当成员属性数目大于实际数目时才可绕过wakeup
首先我们构造一个实现一个Name实例,然后进行序列化,把这里的2改成大于2的数字,即可实现绕过wakeup函数。
payload:O%3a4%3a%22Name%22%3a4%3a%7bs%3a14%3a%22%00Name%00username%22%3bs%3a5%3a%22admin%22%3bs%3a14%3a%22%00Name%00password%22%3bs%3a3%3a%22100%22%3b%7d