首页 » 网站建设 » ctfphp沙箱技巧_DC0531CTF在线比拼具体Writeup看这里

ctfphp沙箱技巧_DC0531CTF在线比拼具体Writeup看这里

访客 2024-12-11 0

扫一扫用手机浏览

文章目录 [+]

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

Web1

ctfphp沙箱技巧_DC0531CTF在线比拼具体Writeup看这里

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

ctfphp沙箱技巧_DC0531CTF在线比拼具体Writeup看这里
(图片来自网络侵删)

方法一

图1

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

图2

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

图3

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

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

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

图5

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

图6

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

图7

方法二

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

图8

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

图9

图10

Web2

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

图11

Web3

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

图12

图13

Web4

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

图14

图15

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

标签:

相关文章