Bugku-一个普通的压缩包

  • 题目下载下来是一个 zip.rar,打开后发现里面有个flag.txt,打开以后…是 flag is not here

  • 所以目标点应该不在这。

  • 懒得看文件头啥的了,直接拖入kali,binwalk一下

  • 发现有一个rar文件和一个zip文件。直接foremost分离它们。
1
foremost zip.rar
  • 分离得到的rar就是原来的那个zip.rar脱去那个zip压缩包后的rar。

  • 而zip压缩包里面有一个名为“一个普通的压缩包”的文件夹

  • 文件夹里面是一个flag.rar,打开rar文件以后里面还是flag.txt,内容依旧是flag is not here

但是值得注意的是: rar文件大小有6kb,但是那个flag.txt只有1kb

  • 用十六进制查看器对这个rar压缩包查看了一番, 发现里面有一个secret.png

  • 但是为什么双击打开rar的时候却没显示这个png文件?

  • 搜索一番后得知, 这是因为我用的2345解压, 这款软件会自动过滤掉不完整的文件,这个不完整是指缺少rar文件的一些标识。

  • 具体知识可以在下面网站中学习。

传送门

  • 回归原始,用winrar打开这个rar压缩包,提示如下

  • 所以目标就变成修复这个png文件的文件头。

  • 用winrar和2345解压自带的修复功能都没有用… 只能手动了。

  • 在flag.txt结束的地方就是下一个块开始的地方,flag.txt结束于 flag is not here的最后一个字母e。 则新块开始于图中A8 3C这个位置。

  • 结合文档

  • 可知A8 3C就是对应的HEAD_CRC

  • 但是HEAD_TYPE却不是0x74而是0x7A,将其改为0x74保存。

  • 再次打开rar以后发现了secret.png, 文件总大小也差不多是rar文件的大小了。

  • 观察可以发现在十六进制查看其器中 HEAD_TYPE 总是位于该文件CRC32的第三位的上方。这一点可以用来验证,修改的位置是不是HEAD_TYPE。

  • 下面对secret.png进行分析

  • 是个gif文件,拓展名改为gif后开始分离

  • 分离得到两张图片, 分别拖入Stegsolve

  • 得到一张下半部分的二维码和一张不完整的上半部分的二维码。补全对应位置得到完整二维码。

  • 扫码得到:
1
flag{yanji4n_bu_we1shi}