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

本文介绍了一种通过LSB隐藏信息的方法,并展示了如何利用CRC32爆破来解密隐藏的内容。提供了Python脚本来匹配CRC32值,并最终得到了解密后的flag。该过程涉及到网络技术、信息安全和编码解码技术。
摘要由CSDN通过智能技术生成
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}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

末 初

谢谢老板!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值