BMZCTF 2020公开赛 MISC(下)

2022/1/2 6:07:58

本文主要是介绍BMZCTF 2020公开赛 MISC(下),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

BMZCTF 2020公开赛 MISC(下)

tiga

题目状况

image-20211227000732122

misc.zip被加密了,在win下看到文件是txt格式而且毫无(实质)内容的时候,我就猜测应该是0宽度隐写

image-20211227000136586

使用0宽度隐写,在这里解密

解密后image-20211227000629886

密码是GiveTiGaGuang!

解压misc.zip后得到如下内容

image-20211227000926708

打开Password内容看一下

image-20211227001216210

再一次根据我为数不多的经验,推测应该是使用crc爆破

其中关于使用crc爆破的原因可以看这个

image-20211227001407274

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即可

image-20211227002218357

最后结果是这样的,密码是T&hg%WL0^rm@c!VK$xEt~

image-20211227003400529

解压后得到了一个you can also.zip,不出所料又加密了

image-20211227003802173

做不下去了,找提示

根据之前那张没有用到的迪迦.jpg,可以在文件尾看到这些信息

image-20211227003938484

既然这么说了,那就爆破

这里我试了两种不同方式,一种是爆破攻击10位,一种是掩码攻击,都没有出来

我是个傻子,选错压缩包了。。

最终还是爆破出来了

image-20211227010748593

密码是2001701725

image-20211227010925619

看我标黄的地方,得到压缩包内的一个文件了,明文攻击

先把得到的you can also.jpg压缩成与flag.zip一致的格式,也就是zip

看我的配置

image-20211227011511151

我的配置对了,但是报错在选定的档案中没有匹配的文件。如果您想要仅使用文件的一部分执行明文攻击,请修改档案,使每个档案中只包含一个文件。

上网查了,我压缩的文件,与加密文件压缩方法不一致。。。。

我在这里尝试了好久(一天多),发现虽然压缩算法就那么几种,但是每种压缩工具的压缩方法是不同的,我先后尝试了使用python进行flag.zipcompress_type的读取,然后再通过write的方法对youcanalso.jpg进行指定compress_type压缩和删除flag.zip中的flag.txt再尝试均失败后。。。

最后还是根据出题人的wp使用了使用和出题者一样的压缩工具bandizip。。

这回压缩后的youcanalso.zip就可以和flag.zip进行明文攻击了

image-20211227103145572

解出密码是1amT1G@

打开flag.txt看一下,经典的504b

image-20211227110843912

老套路,复制到winhex作为一个另存为zip文件

image-20211227111346656

根据工具分析加肉眼辨认,很轻易地就可以辨认出这压缩包其实是个docx文档

image-20211227111610344

以docx格式打开后记得勾选设置里的显示-->隐藏文字

image-20211227111908508

记得选中所有文字,然后字体,取消隐藏文字,不然无法复制

image-20211227114354738

我最开始是时使用ciphey来解的。。。

我有个习惯,就是需要使用Linux的时候我直接用ssh连接服务器使用的,一般不用虚拟机的kali

结果这回。。。。ciphey成功的把我的垃圾服务器资源耗尽了。。。。。



这篇关于BMZCTF 2020公开赛 MISC(下)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程