近来无事,在bugku上做做习题,时间长不动脑子,都快钝了,还是来一道82年的CTF提提神吧!题不是什么大佬级别的题,但是小问题比较多,本人也是菜鸡一枚,诸多大佬担待哈
不扯淡了,进入正题:
拿了一道bugku的misc:神秘的文件
网上的教程很多,但多多少少都有让人理解不了的地方,特别是**密码那一块,只把人家的**成功的截图发出来,对于为什么**不出来没说清,今天深入研究了一下,分享一下哈。
1.文件下载下来是一个zip文件,解压后有两个文件:flag.zip和logo.png
但是解压这个flag.zip是需要密码的,肯定没有想的那么简单。
2.解压不了,可以用7z打开这个压缩文件,查看里面都有什么文件:
其一:里面也有两个文件,一个是和刚才的那个png一样的文件名的图片,一个是doc文件;
其二:后面又CRC校验码,这个是干嘛的,这里不过多叙述,就将其看作成一个tag吧。
既然压缩包中有和外面一毛一样的图片,是不是可以从这里入手呢?
压缩包需要密码,且压缩包内含有和外面一样的文件,这个时候,就想到了明文**,第一次听到这个词可能会有些陌生,可以去查查相关概念,其实也没啥,就是这个意思:被加密的压缩包内所含有的文件,如果在压缩包外也有这样一个文件,那么就可以借助外面的这个文件使用明文**。怎么操作呢,往下看。
3.回头再次查看外面的这个logo.png,啥也没有。压缩文件使用明文**有规定,两个文件的格式需要一样,并且压缩包内只能含有单个相同的文件。什么意思呢?
先将这个logo.png压缩成zip文件,我使用7z压缩,注意:一定是 '.zip' 和flag.zip保持一致,然后flag.zip内的文件只能保留logo.png。为什么呢?这个是明文**的规定,一对一,一个外部明文文件,对一个内部加密文件。有且仅有一个文件。还有就是工具的局限性,它不支持多个文件同时跑。
因此需要把那个doc文件删除,只留下png文件。
4.然后打开ARCHPR进行**,加密的文件选择我们要**的flag.zip,明文就选择刚刚压缩的logo.zip
选定文件后开始**:选择是
然后
但是失败了,继续尝试!
换个进制:选择Hex
但似乎也没有跑出来,查了好几篇文章这里都是一笔带过,也没发现有哪里有详细的解释。
5.百思不得其解,这种感觉就像是吃了翔的感觉,哑巴吃翔啊,淦!
为我解开谜题的就是下面这个图了,那一瞬间看到了rar压缩工具,是不是因为压缩的工具不一样,导致后台生成压缩文件的编码方式不一样?使用两种不同的工具对相同的文件进行了压缩,使用工具进行明文**,这个肯定**不出来!
对,试试其他的压缩工具,WinRAR、2345等
现在试试WinRAR:生成zip后缀的压缩文件。
再次使用工具**:
奥里给啊!淦!不知道大家有没有发现,这个时候开始**,也没有什么提醒之类的,一切都变得理所当然了。
然后**成功:
使用密码打开压缩包,查看那个doc文件,(没有做备份的,可以重新下载一下文件)
又是一个狗比的出题人,没事我已经习惯了。
这个文件肯定有端倪,使用二进制查看器查看:
50 4B 03 04开头,在加上后面的这个PK,以及app.xml,基本断定:
1)这是一个zip文件,一般的zip文件都是这个开头方式,而且后面的这个PK也说明了,zip压缩的发明者:菲尔·卡茨(Phil Katz),为了作为纪念,故此加上姓名首拼加在了开头。
所以这个时候需将后缀改成zip,并不是随便就改了,要懂得为什么改才是哈。
然后解压缩,文件不多,稍微翻一翻就能找到flag.txt打开,一眼就看出是base64加密,然后解密即可。
最后得到 flag{d0cX_1s_ziP_file}
总结:这个题的难点在于使用明文**那里,使用的压缩工具不一样,最后出的结果会直接被影响,还是得多尝试才是。
大家加油!