IDF CTF训练营之抓到一只苍蝇

原题描述:

报告首长!发现一只苍蝇。。

在哪?

here!

卧槽?!好大一坨苍蝇。。

题目需要分析日志misc_fly.pcapng

下载链接:misc_fly

(1)wireshark打开抓取的包,首先分析过滤出HTTP的包,在HTTP的第一个POST包中看到如下信息

1

得知是传送的一个fly.rar的文件,文件大小为525701bytes,以及md5和sha验证

(2)然后查看到其中一个POST包中的信息

2

跟题目描述相匹配,证明POST提交的rar文件就是我们需要还原的文件

(3)过滤所有的post包

http.request.method == POST

17

对这几个包分析发现这是一封带fly.rar附件的邮件发送。发信人是81101652@qq.com,收件人是king@woldy.net,fly.rar大小为525701bytes

(4)进一步分析发现附件rar是从192.168.1.101发送到59.37.116.102的包

3

分五次发送,每次发送的大小为:

4次131436bytes + 1次1777bytes = 527521bytes

4

5

(5)使用wireshark将每个包提取出来,提取方式是选中每个包的media type数据块,右键 –> 导出分组字节流 –> 分别保存为1,2,3,4,5

6

(6)五个数据包合起来的大小比fly.rar要大,主要是每次数据传输会带上一些标志位等信息,需要将这些信息踢出来。每个包多加的大小为:

(527521bytes – 525701bytes) / 5 =  364 bytes

使用Kali中的dd工具将包处理这5个数据包

dd if=1 bs=1 skip=364 of=11

7

处理完5个数据包后得到如下,可以看到数据包小了一些

8

然后将处理完的5个文件进行合并,使用命令

cat 11 22 33 44 55 > fly.rar

可以看到合并后的文件大小正好符合发送附件的大小

9

对生成的fly.rar进行md5和sha验证,得到跟抓包信息相同的结果,可以证明还原的数据包fly.rar是正确的

16

(7)然后打卡fly.rar文件,但是打不开,需要输入密码,可能是伪加密

使用zipCenOp.jar去伪加密,失败。查阅资料发现需要修改标志位

将fly.rar文件放入winhex中,可以看到flag.txt文件,重点修改标志位0x84为0x80

10

(8)修改完成后的文件保存,然后解压就可以得到flag.txt文件

得到的flag.txt文件比较大,用notepad++打开,第一行发现如下信息

11

(9)将flag.txt文件修改后缀为flag.exe文件

点击执行,确实好大一坨苍蝇啊。

12

这个程序蛮有意思的,可以留着用(*<>*)

(10)这么大的文件肯定会有猫腻,用binwalk运行查看flag.txt发现隐藏着一张png图片

13

然而用binwalk -e 提取的文件中没有图片,不理解。。。

(11)使用winhex载入flag.txt,在偏移0x2000处找到png的文件头

14

从0x2000直到文件结尾复制出来,然后保存到另一个winhex文件中,另存为flag.png文件

此时打开png文件就ok了,是一张二维码图片

flag

(12)扫码得到flag的值

15

总结:这个题目考察的地方真滴好多,做起来很是蛋疼,是一个不错的MISC题目,也感谢前辈的wp提示。

 

您可能还喜欢...