BMZCTF 2020公开赛 MISC(下)
tiga
题目状况
misc.zip
被加密了,在win下看到文件是txt
格式而且毫无(实质)内容的时候,我就猜测应该是0宽度隐写
使用0宽度隐写,在这里解密
解密后
密码是GiveTiGaGuang!
解压misc.zip
后得到如下内容
打开Password
内容看一下
再一次根据我为数不多的经验,推测应该是使用crc爆破
其中关于使用crc爆破
的原因可以看这个
CRC碰撞原理就是构造一个和源文件等长的字符串,然后再对其进行CRC校验,比较校验码是否相同即可。
嫖来的脚本
import binascii
import string
def crack_crc():
print('-------------Start Crack CRC-------------')
crc_list = [0x14433530, 0xaf251007, 0xd554e7b6, 0xebb3156, 0xbb474d49, 0x2cb8a39b, 0x75fe76f0]
comment = ''
chars = string.printable
for crc_value in crc_list:
for char1 in chars:
for char2 in chars:
for char3 in chars:
res_char = char1 + char2 + char3
char_crc = binascii.crc32(res_char.encode())
calc_crc = char_crc & 0xffffffff
if calc_crc == crc_value:
print('[+] {}: {}'.format(hex(crc_value),res_char))
comment += res_char
print('-----------CRC Crack Completed-----------')
print('Result: {}'.format(comment))
if __name__ == '__main__':
crack_crc()
根据压缩包内的crc32值填入crc_list即可
最后结果是这样的,密码是T&hg%WL0^rm@c!VK$xEt~
解压后得到了一个you can also.zip
,不出所料又加密了
做不下去了,找提示
根据之前那张没有用到的迪迦.jpg
,可以在文件尾看到这些信息
既然这么说了,那就爆破
这里我试了两种不同方式,一种是爆破攻击
10位,一种是掩码攻击
,都没有出来
我是个*,选错压缩包了。。
最终还是爆破出来了
密码是2001701725
看我标黄的地方,得到压缩包内的一个文件了,明文攻击
先把得到的you can also.jpg
压缩成与flag.zip
一致的格式,也就是zip
看我的配置
我的配置对了,但是报错在选定的档案中没有匹配的文件。如果您想要仅使用文件的一部分执行明文攻击,请修改档案,使每个档案中只包含一个文件。
上网查了,我压缩的文件,与加密文件压缩方法不一致。。。。
我在这里尝试了好久(一天多),发现虽然压缩算法就那么几种,但是每种压缩工具的压缩方法是不同的,我先后尝试了使用python进行flag.zip
的compress_type
的读取,然后再通过write
的方法对youcanalso.jpg
进行指定compress_type
压缩和删除flag.zip
中的flag.txt
再尝试均失败后。。。
最后还是根据出题人的wp使用了使用和出题者一样的压缩工具bandizip
。。
这回压缩后的youcanalso.zip
就可以和flag.zip
进行明文攻击了
解出密码是1amT1G@
打开flag.txt
看一下,经典的504b
老套路,复制到winhex作为一个另存为zip文件
根据工具分析加肉眼辨认,很轻易地就可以辨认出这压缩包其实是个docx文档
以docx格式打开后记得勾选设置里的显示-->隐藏文字
记得选中所有文字,然后字体,取消隐藏文字,不然无法复制
我最开始是时使用ciphey来解的。。。
我有个习惯,就是需要使用Linux的时候我直接用ssh连接服务器使用的,一般不用虚拟机的kali
结果这回。。。。ciphey成功的把我的垃圾服务器资源耗尽了。。。。。