打开发现是一张图片,而且图片大的离谱
放进winhex分析一下,发现存在压缩包,放到kali分解一下图片
得到三个文件和一个压缩包,打开压缩包发现需要输入密码
用winhex分析一下压缩包,并未发现伪加密,判断应该是真加密
我们用strings分析一下其他两个文件里可以输出的字符串,
并未发现特殊字符,到此我们的思路断了
我们再回到最初的图片,仔细想一下
图片隐写常见的题型:把flag藏在十六进制中,或者以不同包括XOR、ADD、SUB等操作进行隐写,还有一种,可能会把重要信息藏在图片中,但是没有显示出来,而且十六进制中并没有什么重要信息,我们使用010editor跑一下png模板。也可以直接在kali中打开判断是否报错
发现提示CRC错误,CRC又是通过IDCH到HDR计算得来的,IDCH是固定的,我们猜测应该是IHDR中部分信息被修改了(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计算得到。
这里我们尝试修改宽度,让它变宽一点 ,看看会不会出现新的信息
发现图片错误了,我们改回去,进行修改高度看看
原有高度:
修改后的高度
我们打开图片看看 发现出现了一串字符
估计应该是压缩包密码,输入进去看看,解压成功,得到一个数据包文件,放进wireshark中分析一下。搜索:flag,ctf,key。都没搜索都有什么信息。我们进行协议分级统计一下
发现有http流量,我们过滤一下
这里发现了一个png文件,我们追踪一下
得到了一串密文,我们尝试在kali中识别一下,发现可能是sha1加密,但是我们进行解密的时候,发现不可解,仔细观察看一下,我们排除一下不可逆的加密方法
ZmxhZ3tPel80bmRfSGlyMF9sb3YzX0ZvcjN2ZXJ9
发现可能是base64加密的
我们进行解密得到flag
flag{Oz_4nd_Hir0_lov3_For3ver}
其他方便的解法
ps:另外两个文件都是干扰文件
可以使用模板计算图片的CRC值,错误会报错
使用png模板可以直接修改高度
参考文章:https://blog.csdn.net/qq_45313512/article/details/120414231