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}