看这个代码,我们要读取文件text里面的数据,(因为file_get_contents)所以我们不能简单地text=xxxx,而是要用phpinput或者data方法来读取,这样他会先把text包装成一个文件,我们就能用file_get_contents来读取了, 下面我们匹配到的file文件不能有flag出现,之后文件会包含file变量包含的类,这里给了一点提示是useless,之后我们会反序列化password让后输出这个参数或是什么,我们思路先通过PHP伪协议读取useless发现 所以这里有tostring函数会读取file参数并输出,所以我们如果让file参数是flag.php就能得到答案,所以我们构造函数 O:4:“Flag”:1:{s:4:“file”;s:8:“flag.php”;} 大概是这个样子的,其中O代表了类的公有类,他有一个参数 其实这里就是构造一个flag类,类里面有一个string参数file,string参数的值是flag.php,我们把它反序列化之后就能利用它来读取法兰和.php所以password就直接=O:4:“Flag”:1:{s:4:“file”;s:8:“flag.php”;},就行,而我们要让useless类能被使用,就要用文件包含file来包含他,file=useless.php,前面的text就直接用input或者data包装就
|