步骤
下载所给附件,发现是一个rar压缩文件,解压之后应该可以发现里面有一个flag.txt文件,还有一个secret.png提示文件头损坏没解压出来,我第一次使用winzip直接提示我无效文档???
然后我不信邪又用kali里的命令进行解压缩,成功解压出来flag.txt文件,并提示我secret.png文件头损坏
打开flag.txt文件进行查看,发现是一个烟雾弹
再次吐槽一下winzip真是lj,选对工具真的是非常非常重要!
那么线索只能是在secret.png文件里了,根据题目描述搞错了一块,说明压缩包有问题,我们使用winhex打开压缩文件
因为只有两个文件,here结束之后的位置应该就是sercet.png文件的开始部分,然后了解了一下rar的组成:
每个数据块的结构:
HEAD_CRC:校验码,2字节 HEAD_TYPE:块的类型,1字节,也可理解为块的头部类型,不同的块对应不同的块头部 HEAD_FLAG:块标记,2字节 最后两个字节表示块的大小
声明的块类型:
HEAD_TYPE=0x72:标记块 HEAD_TYPE=0x73:归档头部块(压缩文件头) HEAD_TYPE=0x74:文件块(文件头) HEAD_TYPE=0x75:老风格的注释块 HEAD_TYPE=0x76:老风格的用户身份信息块 HEAD_TYPE=0x77:老风格的子块 HEAD_TYPE=0x78:老风格的恢复记录块 HEAD_TYPE=0x79:老风格的用户身份信息块 HEAD_TYPE=0x7a:子块 HEAD_TYPE=0x7b:结束块
由于我们这里的是文件块而不是子块,所以将7A改为74,另存为文件
解压之后可以看到一张图片,打开发现是白色的图
老规矩,用winhex打开secret.png图片,发现它实际上是一个gif文件,怎么看出来的可以看一下这位师傅的文章
将后缀修改为gif,之后用stegsolve.jar打开,发现了半个二维码
题目描述中又提示双图层,唉,被迫下载了ps
打开文件secret.gif,查看图层,发现有两个图层,选中第2个图层
另存为secret1.gif文件
之后使用stegsolve分别打开两个gif图片:
发现了两张半个二维码,然后将两张图片拼接起来,添加缺失的定角符:
扫描二维码得出flag
吐槽一下,ps是真的难用啊…
总结
rar压缩文件的了解
各种图片头文件格式的了解
工具的选择与使用
二维码的了解