BMZCTF:山东省大学生网络技术大赛-pic

http://bmzclub.cn/challenges#%E5%B1%B1%E4%B8%9C%E7%9C%81%E5%A4%A7%E5%AD%A6%E7%94%9F%E7%BD%91%E7%BB%9C%E6%8A%80%E6%9C%AF%E5%A4%A7%E8%B5%9B-pic

在这里插入图片描述
flag.png使用stegsolve打开,查看LSB,发现7z文件
在这里插入图片描述
Save Bin保存出来,得到如下
在这里插入图片描述
很明显,CRC32爆破内容,首先取出每个文件的CRC值

1.txt	0x40e61be5
2.txt	0x91c7b4a0
3.txt	0xf4fd5e1c
4.txt	0x02658101
5.txt	0x92d786fd
6.txt	0x03b3ea6a

[0x40e61be5,0x91c7b4a0,0xf4fd5e1c,0x02658101,0x92d786fd,0x03b3ea6a]

然后利用我这篇文章中的3字节脚本:https://mochu.blog.csdn.net/article/details/110206427

import binascii
import string

def crack_crc():
    print('-------------Start Crack CRC-------------')
    crc_list = [0x40e61be5,0x91c7b4a0,0xf4fd5e1c,0x02658101,0x92d786fd,0x03b3ea6a]#文件的CRC32值列表,注意顺序
    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#获取遍历的任意3Byte字符
                    char_crc = binascii.crc32(res_char.encode())#获取遍历字符的CRC32值
                    calc_crc = char_crc & 0xffffffff#将遍历的字符的CRC32值与0xffffffff进行与运算
                    if calc_crc == crc_value:#将获取字符的CRC32值与每个文件的CRC32值进行匹配
                        print('[+] {}: {}'.format(hex(crc_value),res_char))
                        comment += res_char
    print('-----------CRC Crack Completed-----------')
    print('Result: {}'.format(comment))

if __name__ == '__main__':
    crack_crc()

在这里插入图片描述

flag{CRC32/233333}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:C马雯娟 返回首页