DC0531CTF在线比拼,详细Writeup看这里!

6月23日,DC0531在泉城济南顺利举办,来自各个安全领域的大牛们给大家带来了一场炫酷的技术视听盛宴!大会举办期间,还

开展了线上CTF比赛,供网络安全人员进行现场技术比拼。

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

Web1

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

方法一

DC0531CTF在线比拼,详细Writeup看这里!

图1

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

DC0531CTF在线比拼,详细Writeup看这里!

图2

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

DC0531CTF在线比拼,详细Writeup看这里!

图3

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

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

DC0531CTF在线比拼,详细Writeup看这里!

图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],所以我们最后获取的内容在开头要加上一个字符。

DC0531CTF在线比拼,详细Writeup看这里!

图5

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

DC0531CTF在线比拼,详细Writeup看这里!

图6

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

DC0531CTF在线比拼,详细Writeup看这里!

图7

方法二

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

DC0531CTF在线比拼,详细Writeup看这里!

图8

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

DC0531CTF在线比拼,详细Writeup看这里!

图9

DC0531CTF在线比拼,详细Writeup看这里!

图10

Web2

DC0531CTF在线比拼,详细Writeup看这里!

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

DC0531CTF在线比拼,详细Writeup看这里!

图11

Web3

DC0531CTF在线比拼,详细Writeup看这里!

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

DC0531CTF在线比拼,详细Writeup看这里!

图12

DC0531CTF在线比拼,详细Writeup看这里!

图13

Web4

DC0531CTF在线比拼,详细Writeup看这里!

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

DC0531CTF在线比拼,详细Writeup看这里!

图14

DC0531CTF在线比拼,详细Writeup看这里!

图15

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


分享到:


相關文章: