[Writeup] MISC->好多压缩包

[复制链接]
查看18386 | 回复6 | 2017-5-28 18:33:11 | 显示全部楼层 |阅读模式
本帖最后由 p1ain 于 2017-5-28 18:47 编辑

首先下载123.zip并解压,发现一共解压出来68个zip压缩包。当我们尝试打开压缩包时,提示我们输入密码

打开out1.zip

打开out1.zip

用binwalk查看一下out1.zip文件

binwalk out1.zip

binwalk out1.zip

发现未压缩的data.txt文件大小只有4个字节,而zip文件中包含未压缩的data.txt文件的CRC32校验值,这里我们可以进行爆破。通过爆破得到out67.zip的内容为AA==,用base64对所得的整个内容进行解码,写入zip.dat文件。
利用ultraledit查看zip.dat 屏幕快照 2017-05-28 下午6.22.12.png
通过文件开头的CF 90 73 我们可以知道这是一个RAR格式的压缩文件,但是少了52 61 72 21 1A 07 00这7个字节的文件头,加上RAR格式的文件头以后,我们再次打开发现zip.rar包含flag.txt,但是flag.txt的内容却是:fix the file and get the flag,说明我们没有完全修复rar文件。
屏幕快照 2017-05-28 下午6.40.01.png
根据对RAR文件格式的研究,发现zip.rar中还有一个名为CMT的文件,然后把该文件的压缩文件头AA 3E 7A....修改为AA 3E 74...后保存,再次打开即可获得包含flag的文件CMT。
屏幕快照 2017-05-28 下午6.45.49.png
屏幕快照 2017-05-28 下午6.46.42.png
附件为从68个文件中提取data.txt内容,然后用base64解码保存成zip.dat文件的Python代码。


好多压缩包.py.zip

802 Bytes, 下载次数: 65

售价: 1 银两  [记录]

好多压缩包

回复

使用道具 举报

sccdlth | 2017-5-29 01:41:43 | 显示全部楼层
改了头之后整个文件内容都发生了变化……在PY里就该把头给加上……
回复

使用道具 举报

匿名 p1ain | 2017-5-29 02:29:29 | 显示全部楼层
sccdlth 发表于 2017-5-29 01:41
改了头之后整个文件内容都发生了变化……在PY里就该把头给加上……

这里Python只是对zip文件解密和base64解密,后续的分析必须看二进制才知道怎么做,所以没有在py里面体现出来
回复

使用道具 举报

匿名 codog | 2017-6-2 16:12:25 | 显示全部楼层
大佬,我记得之前遇到过类似的的题。有大佬说是CRC碰撞,是跟这个一样吗。
回复

使用道具 举报

匿名 p1ain | 2017-6-2 19:59:08 | 显示全部楼层
codog 发表于 2017-6-2 16:12
大佬,我记得之前遇到过类似的的题。有大佬说是CRC碰撞,是跟这个一样吗。

是的,当用zip压缩时,如果源文件过小的时候,可以直接用CRC碰撞还原数据,不过仅限于文本之类的简单格式文档。
回复

使用道具 举报

Reven | 2017-6-3 21:19:47 | 显示全部楼层
感谢大佬的思路。
我在做的时候是在windows环境下,发现当把rar头部修复之后,用压缩软件打开,flag就在注释里。

回复

使用道具 举报

匿名 codog | 2017-7-4 22:39:24 | 显示全部楼层
p1ain 发表于 2017-6-2 19:59
是的,当用zip压缩时,如果源文件过小的时候,可以直接用CRC碰撞还原数据,不过仅限于文本之类的简单格式 ...

恩恩。多谢大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

匿名
p1ain 该用户已被删除