1.用wireshark打开题目所给的流量包
获得如下信息
2.首先在分组字节流中搜索一下字符串 flag找到第一个包追踪一下数据流。
追踪tcp流发现为qq邮箱传输文件
3.既然知道了在上传文件,肯定要用到 http的request的 POST方法
在过滤器中输入
http && http.request.method==POST
4.找到这5个包,第一个包是文件的信息,后面5个包为数据
分别查看其中 date 的长度:
前四个为131436 最后一个为17777
所以131436*4+17777=527571与第一个包给出的 fly.rar的长度525701差 1820
因为每个包都包含头信息,1820/5 = 364
所以每个包的头信息为 364
5.导出数据包
wireshark->文件->导出对象->http->选择save对象
将对应的包分别save 为 1 2 3 4 5
6.将这五个包拖进kali中
执行命令
dd if=1 bs=1 skip=364 of=11 dd if=2 bs=1 skip=364 of=22 dd if=3 bs=1 skip=364 of=33 dd if=4 bs=1 skip=364 of=44 dd if=5 bs=1 skip=364 of=55
将数据包的头部的364个字节去除得到 11 22 33 44 55
7.将这五个包合并
执行命令
cat 11 22 33 44 55 > fly.rar
8.查看一下 flag.rar的md5值是否正确
执行命令
md5sum fly.rar
md5值正确!!!
9.解压,跳出提示文件头损坏,并且要求输入密码
知道是伪密码,用010打开,修改文件头,将 84 改为 80,保存
10.解压得到flag.txt 打开一堆乱码,先用binwalk查看文件信息,发现其中包含多个png文件,再用foremost分离文件
11.打开分离后得到的png图片,扫描其中的二维码,拿到了flag
flag{m1Sc_oxO2_Fly}