打开发现是一张图片,而且图片大的离谱

放进winhex分析一下,发现存在压缩包,放到kali分解一下图片

得到三个文件和一个压缩包,打开压缩包发现需要输入密码

用winhex分析一下压缩包,并未发现伪加密,判断应该是真加密

我们用strings分析一下其他两个文件里可以输出的字符串,

并未发现特殊字符,到此我们的思路断了

我们再回到最初的图片,仔细想一下

图片隐写常见的题型:把flag藏在十六进制中,或者以不同包括XOR、ADD、SUB等操作进行隐写,还有一种,可能会把重要信息藏在图片中,但是没有显示出来,而且十六进制中并没有什么重要信息,我们使用010editor跑一下png模板。也可以直接在kali中打开判断是否报错

b51079e0bb230efa456a6ce564b36e7e.png

发现提示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

最后修改:2022 年 06 月 28 日
如果觉得我的文章对你有用,请随意赞赏