freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

DC0531CTF在线比拼,详细Writeup看这里!
2018-09-14 11:22:08


6月23日,DC0531在泉城济南顺利举办,来自各个安全领域的大牛们给大家带来了一场炫酷的技术视听盛宴!大会举办期间,还开展了线上CTF比赛,供网络安全人员进行现场技术比拼。

本期“安仔课堂”,ISEC实验室的王老师,将为大家记录本次比赛的解题思路及方法。

Web1

首先关注一下比赛方的公众号,按照题目制定的battle ground的规则开始玩,先了解该公众号提供的所有功能。有两种解题方法,一种是抓取流量包,一种是命令执行。

方法一

image.png

图1

先看一下有哪些武器,选择一个捡起,载入武器,向你的VPS射击,就可以获取到题目的IP。在射击之前,用tcpdump -nn -i eth0 icmp -w dc0531.cap先在你的VPS上抓包。

image.png

图2

这题存在git泄露,先把源代码扒下来:

image.png

图3

这里只解释代码的关键部分,关键代码路径在: Application/Home/Controller/TestController.class.php。

先看P方法,改方法主要是用于将$weapon文件的内容base64加密后前100个字符存放在$this->info[bullet]中,用在下面的s方法,代码如下:

image.png

图4

再看r方法,该方法用于初始化$this->info[status] = 100,经过初始化之后才能利用s方法。s方法就是携带上面base64加密后的$weapon文件的内容前100个字符,去ping目标主机,也就是微信公众号中的shot功能,ping命令的-p 选项可以设置icmp报文数据部分的内容。这里要注意下面代码中16、17行,$this->info[status] - 1为99,相应$bullet = $this->info[bullet][100-99];即从$this->info[bullet][1]开始,漏掉了$this->info[bullet][0],所以我们最后获取的内容在开头要加上一个字符。

image.png

图5

明白了以上三个方法,我们就知道如何利用漏洞获取flag了。首先我们要把flag文件装入$weapon,然后一直shot我们的VPS,具体利用如下:

image.png

图6

VPS上用tcpdump抓包,提取内容为:D9waHAKJGZsYWcgPSAiREMwNTMxe1dlY2hBdF9Jc19Tb19DMG9sfSI7Cg== ,在开头随便加上一个字母,这里我加P,解出来如下:

image.png

图7

方法二

下面说另外一个解法,就是通过命令执行的方式获得flag。其实一开始我发现方法u中存在命令执行,但是看了前面的代码,发现没有调用到该函数,就暂时忽略了。后来想到这是ThinkPHP的程序,Thinkphp是可以通过路由方式调用方法的,方法u的代码如下:

image.png

图8

下面就说说如何利用这个命令执行漏洞。首先在我们的VPS上留下python反弹shell脚本,然后根据Thinkphp3.2.3的路由规则,分别访问一下两个链接,当然你要在你的VPS上提前侦听某个端口,链接如下:

image.png

图9

image.png

图10

Web2

题目地址:http://150.95.146.178/

这道题目可以本地搭环境复现,题目使用的是Metinfo6.0.0,上网搜索该版本cms漏洞,可以看到《Metinfo 6.0.0 任意文件读取漏洞》的漏洞分析,题目刚好也是考察这个漏洞,只是题目环境用的是最新版的Metinfo6.0.0,与该博客上的版本代码略有差别,不过还是能绕过,具体分析可以看那篇文章,这里不赘述,直接给出利用方式。

image.png

图11

Web3

题目地址:nc 139.198.191.81 9999

python沙箱逃逸,遇到空格和某些关键字就会直接断开,直接read也会断开,payload如下:

image.png

图12

image.png

图13

Web4

题目地址:http://139.198.191.81:18080/

用dirb扫描发现存在git泄露,用Githack将泄露的文件扒下来,flag.php中即可找到flag。

image.png

图14

image.png

图15

这题是一个经典的配置文件写入问题,实际考察内容可参考《 CTF_web/web200-7 》)


本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者