Zip加密破解方法(重点是伪加密的破解)
我们在做ctf中的misc题目是经常会碰见zip文件需要密码来解密的情况
解题的方法有三种:
- 根据提示或者其他题目所提供的图片或者密码解出密码
- 暴力破解
- 伪加密破解
例题(1.根据提示或者其他文件解答):
一:不要尝试爆破呦!
将题目中下载的文件解压后得到一张图片和一个压缩包,但是压缩包里面的文本需要密码
所以考虑解析这张图片,从而获得密码
这里可以看到Key{}
将没用的数字和空格删掉即为密码
得到密码yUnxiwlGF@604..S_ET-up,解开文本之后的到以上的数据,观察文本的开头发现这是base64解码
解码后得到这样一个残缺的二维码,把它补充完整进行扫描便可以得到flag
得到flag
例题(暴力破解):
解压题目中下载的文件,发现需要密码,第一步直接暴力破解密码
使用这个工具
发现密码
输入密码得到一个flag文本
打开得到flag
接下来重点是伪加密
一:原理
- 压缩源文件数据区:
- 压缩源文件目录区:
- 压缩源文件目录结束标志:
三:判断是否加密(图片实例为借鉴)
注意:
全局方式位标记的四个数字中只有第二个数字对其有影响,其它的不管为何值,都不影响它的加密属性,即:
(1)第二个数字为奇数时 –>加密
(2)第二个数字为偶数时 –>未加密
1.未加密:
压缩源文件数据区的全局方式位标记应当为00 00 (50 4B 03 04 14 00 后)
且压缩源文件目录区的全局方式位标记应当为00 00 (50 4B 01 02 14 00 后)
2.伪加密:
压缩源文件数据区的全局方式位标记应当为 00 00 (50 4B 03 04 14 00 后)
且压缩源文件目录区的全局方式位标记应当为 09 00 (50 4B 01 02 14 00 后)
3.真加密:
压缩源文件数据区的全局方式位标记应当为09 00 (50 4B 03 04 14 00 后)
且压缩源文件目录区的全局方式位标记应当为09 00 (50 4B 01 02 14 00 后)
修改的方法:
确定是伪加密后就需要将其修改为无加密,方法很简单,就是将压缩源文件目录区的全局方式位标记从09 00改为00 00。
伪加密例题:(题目来源bugku:zip伪加密)
下载题目提供的文件
解压时发现需要密码
直接把这个压缩包拖进010里面,将下面图片位置数据改成现在00的样子,就默认这个压缩包公开了,然后直接回去解压这个压缩包
解压这个压缩包后得到flag.txt
打开发现flag
提交即可