攻防世界 misc新手区 SimpleRAR wp

第一次写这个wp…主要是这个题实在很复杂

首先下载文件,发现是个压缩包,解压得到一个叫做flag的文本,不出意料,点开啥也没有。

研究了半天发生啥也不懂,查阅资料发现,原来问题出在压缩包上。

使用winhex打开压缩包,如图所示

攻防世界 misc新手区 SimpleRAR wp
可以一眼看到这里有个flag is not here ,这个就是刚刚文本的内容。再瞟一眼好像看到有个其他的文件混进去了:secret.png

所以之所以没显示出来的原因大概是文件头有损坏的关系,需要注意的是,如果压缩包文件有损坏的情况,据说,打开损坏的压缩包的时候,winrar是会报错的,不过我没下嘻嘻嘻。

然后就要检查文件头哪里错了,这就比较复杂了。

这里我们先看一下rar文件的格式的文献:

https://wenku.baidu.com/view/918e2c146c175f0e7cd1370d.html

上面那个看起来也不是很好看,我就自己总结了一下。

首先一个RAR文件由很多 块 (block)组成,而每个 块 的头部都由几个域(field)组成,这几个域分别是

HEAD_CRC 2 bytes CRC of total block or block part
整个块或者块某个部分的CRC(根据块类型而有不同)
HEAD_TYPE 1 byte Block type
块类型
HEAD_FLAGS 2 bytes Block flags
块标志
HEAD_SIZE 2 bytes Block size
块大小
ADD_SIZE 4 bytes Optional field - added block size
添加块的大小(这是一个可选域)

ps:1字节对应winhex里面的2位

而对于这个块类型有很多种
攻防世界 misc新手区 SimpleRAR wp
上图来自:
https://blog.csdn.net/destiny1507/article/details/89928234

攻防世界 misc新手区 SimpleRAR wp
在这个图里面,第一个块是标记块,它的crc是61 52,块类型是72,块标志是1A 21,块大小是00 07。

注意,这种多字节的域是从右往左读的,比如这个crc 是61 52,不是 52 61

然后我们看到这个文本内容“flag is not here”结束之后的地方也就是那个隐藏起来的图片的文件头,3C A8是crc,而7A是块类型,但是一看发现这个块类型有点问题,这个应该是文件头的位置,但是7A不是文件头,是子块,所以我们把7A改成74,然后保存,重新解压,就可以发现已经把隐藏图片解压出来了。

不过一打开发现是张白的…

于是重新打开winhex,一看,哟,原来是个gif啊,屁颠屁颠的改了后缀名。

攻防世界 misc新手区 SimpleRAR wp
再一打开,mad,居然还是白的。

按照例用ps(Photoshop)打开,一看,如题目所说

菜狗最近学会了拼图,这是他刚拼好的,可是却搞错了一块(ps:双图层)

是两个图层。不过还都是白的。

于是再查阅资料,发现有个叫做 Stegsolve 的软件可以查看这种图片隐写的(需要安装java环境后使用)

用Stegsolve 打开图片,点右箭头一直到有二维码出现
攻防世界 misc新手区 SimpleRAR wp

一看,完,这是一半,然后重新打开ps,把另外一个图层保存下来,同样的方法得到另一半二维码

攻防世界 misc新手区 SimpleRAR wp
其实也不是一半…还缺这缺那的…

然后我们用ps把缺少的部分补上把它给拼起来…

最后得到完整的二维码

你一定以为我现在要把二维码给放上来,然而…我忘记保存了…

算了…假装放上来了

本文系作者原创,若有错误恳请斧正,不胜感激。