zip明文攻击
所谓明文攻击就是已经通过其他手段知道zip加密文件中的某些内容,比如在某些网站上发现它的readme.txt文件,或者其他文件,这时就可以尝试破解了,例如我今天刚做了一个明文攻击的小题目:
源文件是:明文攻击.zip,但是一看发现zip文件里面有一个之前看到过的hash.exe,和一些其他加密文件,所以就将已经拥有的hash.exe压缩成zip,注意打包完成后,需要确认二者采用的压缩算法相同。一个简单的判断方法是用winRAR打开文件,同一个文件压缩后的体积是否相同。如果基本相同,并且crc32也必须相同,可以说明你用的压缩算法是正确的。如果不同,就尝试另一种压缩算法。
接下来就用神器archpr进行明文破解,注意选择的明文是hash.zip(特别注意archpr5.3版本找到密钥之后有提示而5.4版本没有提示)
杂项第一题: 神秘的文件
https://ctf.bugku.com/files/d017f513e8f414cae61bfa3498ea34a8/5ee325f5-44c6-4a0b-b496-a0b11ef6dca1.rar
下载压缩包后解压
里面是一个压缩包和图片
再次解压flag,需要输入密码
双击压缩包,发现压缩包中含有logo.png
后者含有前者,想到明文攻击
将logo.png压缩做明文。将logo文件压缩为 zip
q1w2e3r4
将压缩包里的文件解压出来,打开doc文件,没有什么有用的信息,但它是肯定有问题的,
于是用binwalk检查一下,果然有问题,用foremost分离
找到flag.txt,打开得到一串base64,解码,ok,得到flag
ZmxhZ3tkMGNYXzFzX3ppUF9maWxlfQ== base64解码得flag:flag{d0cX_1s_ziP_file}
ARCHPR破解版是一个强大的压缩包密码破解工具,功能非常强大,界面简洁明晰、操作方便快捷,设计得很人性化,适用于ZIP和RAR档案的高度优化的口令恢复工具。ARCHPR破解版可以恢复保护口令或将用所有流行的档案版本创建的加密 ZIP 和 RAR 档案解除锁定
软件介绍
ARCHPR是一款压缩文件破解软件,它可以帮助你轻松破解压缩包加压的简单密码,稍微困难的密码经过一些特殊的方法也是可以破解的。
相必很多小伙伴经常也会碰到下载来的压缩包解压的时候需要密码。ARCHPR可以帮助你破解密码,它可以恢复保护口令或将用所有流行的档案版本创建的加密 ZIP 和 RAR 档案解除锁定。
杂项第二题: zip明文攻击
2015广强杯看到了一个zip爆破的题目,一个压缩包一个readme.txt,百度找到了大神的解答,zip明文攻击,用到ARCHPR
题目链接:http://pan.baidu.com/s/1o8gCCm2 密码:n87s
下载后解压
要把readme.txt先压缩成zip
Desktop.zip是要解压缩的文件
所谓明文攻击就是已经通过其他手段知道zip加密文件中的某些内容,这里有百度解说
杂项第三题: 论剑
https://ctf.bugku.com/files/934db0621d88bd8b16049c1b795c6a1a/lunjian.jpg
打开图片并保存在本地。
看下属性没什么发现
UE查看发现了一串奇怪的字符
以前知道如何修改PNG格式的图片的宽高,换到JPEG就一脸懵逼,经过百度知道是先寻找FFC2,3字节后即图片的高与宽信息。
修改文件高度,与宽度一致:
得到如下图片,发现部分flag被遮住:
再使用winhex查看发现一堆二进制:
8个一组转成ASCII码值,得到mynameiskey!!!hhh
查看常用文件头表,发现这是7z文件的文件头,修复一下文件头。继续使用binwalk分析,dd命令分离出压缩包。
压缩包里面发现一张图片,是加密了的,输入之前解密的ascii码,密码正确。又是一张图片,继续修改图片高度,发现这个信息。
结合之前的图片,base16解密一下,就得到flag了。
flag{666C61677B6D795F6E616D655F482121487D},使用16进制解密得到最终
flag{my_name_H!!H}
杂项第四题: 图穷匕见
https://ctf.bugku.com/files/f6697e1f904a0c30b56f72fcf0023434/paintpaintpaint.jpg
打开图片保存到本地
查看属性,有些提示看不懂先保存下来
图片的标题图穷flag见以及题目图穷匕见都暗示该图片在文件末尾隐藏了信息。
用16进制编辑器打开图片,找到jpg的文件尾FF D9,发现其后还有大量的数据
将之后的数据保存到txt中
其实用notepad++或者vim打开就可以看到后面大量的数据。
乍一看无从下手,其实只要尝试将数据按16进制->ASCII方式解码,思路就很明显了,下图中使用的是notepad++中的插件Converter进行解码
解码结果如下,很明显是坐标的形式
这时候再结合会画图吗的提示,将这些坐标做成一张图即可,用gnuplot这个工具比较方便,因此将坐标转为gnuplot能识别的格式 坐标1 坐标2
在Linux中使用
gunplot
plot "文件名"(注意“)
如下图
得到一个二维码
对该二维码在做灰度等的处理后,扫描可得flag
flag为flag{40fc0a979f759c8892f4dc045e28b820}
上面手工梳理的话工作量 很大,可以代码解决
import matplotlib.pyplot as plt
i=0
fig=plt.figure()
with open("text.txt") as f:
fordata in f.readlines():
data=data.strip()
data=eval(data)
plt.scatter(data[0],data[1],c="255",marker=".")
i=i+1
print("rn[+]Has dealed",i,"lines")
plt.show()
本文始发于微信公众号(LemonSec):【杂项入门-zip明文攻击】
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论