# 菜刀 666
题目描述就是流量分析题
打开文件
过滤 POST
的包
http.request.method==POST |
在 tcp.stream eq 7
中发现了大量数据
# jpg 图片的特征:
FF D8开头FF D9结尾,判断为jpg图片,将这些十六进制复制出来,以原始文件流写入文件
png特征
解析:
(固定)八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头
(固定)四个字节00 00 00 0D(即为十进制的13)代表数据块的长度为13
(固定)四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示(IDCH)
(可变)13位数据块(IHDR)
前四个字节代表该图片的宽
后四个字节代表该图片的高
后五个字节依次为:
Bit depth、ColorType、Compression method、Filter method、Interlace method
(可变)剩余四字节为该png的CRC检验码,由从IDCH到IHDR的十七位字节进行crc计算得到。
文件尾:AE 42 60 82
图片尺寸为787x500(高x宽)
00 00 00 0D 说明IHDR头块长为13
49 48 44 52 IHDR标识
00 00 03 13 图像的宽,787像素
00 00 01 F4 图像的高,500像素
发现高宽错误
这里需要注意的是,文件宽度不能任意修改,需要根据 IHDR 块的 CRC 值爆破得到宽度,否则图片显示错误不能得到 flag
#Author: MoChu7 | |
import struct | |
a = open("str.txt","r")#十六进制数据文件 | |
lines = a.read() | |
res = [lines[i:i+2] for i in range(0,len(lines),2)] | |
with open("res.jpg","wb") as f: | |
for i in res: | |
s = struct.pack('B',int(i,16)) | |
f.write(s) |
追踪 tcp 流发现大量数据
以 FF D8 开头以 FF D9 结尾的文件
赋值粘贴将这些数据写入一个文件中形成 jpg 图片:
这下面就是 flag.txt,说明就在流量包里面,可以直接 foremore 解密就行
不用那个就用随波逐流直接秒了
要密码,这时候就是图片发挥作用了
密码:
Th1s_1s_p4sswd_!!!
获得 flag