题目来自于:XCTF的SimpleRAR,由于涉及到许多新知识,所以写篇小文子记录一下。
一、下载完后是一个压缩包。
里面就有一个flag.txt,打开之后发现有一串字符是flag is not here,而且我们查看他的文件大小,只要十六字节,绝对不可能再藏着什么信息了。
然后把压缩包拉到010editor里面,发现一下子出来好多新的内容,很明显是有夹杂着的附加文件。
二、rar文件头信息。
rar 是由一个一个 block 组成的,每个 block 有以下几个部分 HEAD_CRC 2 全部块或块部分的CRC HEAD_TYPE 1 块类型 HEAD_FLAGS 2 阻止标志 HEAD_SIZE 2 块大小 ADD_SIZE 4 可选字段 - 添加块大小
而 HEAD_TYPE一般是下面这些值:
标记块: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
回到这道题,我们想要的是文件块,而非文件子块,所以我们得把位于子块第三个字节的0x7A子块标识改成0x74的文件块标识,然后保存。52好压很坑壁,文件头损坏他压根不提醒。
会发现压缩包里多了一个secret.png。
但是无法打开。 根据题意说是双图层,那我们先把双图层分解出来。这里使用在线PS网站,不用去下载繁杂的PS软件。
三、分离双图层。
看到了右侧的双图层。
导出图层。
四、接下来就是再stegsolve里面拼接了。
先导入一张图层,找到含有二维码部分的那一帧,然后保存为文件名b1。
然后再导入第二个图层。找到含有下半部分二维码的那一帧,然后使用stegsolve的拼接功能,找到我们刚才保存的上半部分b1。
找到拼接好的那一张并保存。可以看出是个半残,我们得把左上角还有右上角的定位块补齐,再次来到在线ps。
五、修复二维码。
直接截图左下角那个完整的定位块,拖到左上角还有右上角即可扫码。可以手机扫,也可以电脑在线扫码。这个网站最好用,你不用将照片保存到本地,直接截图,然后ctrl+v即可扫描成功。