CRC爆破
先简单了解一下CRC爆破
适用于压缩包中文件比较小,比如只有几字节的时候
可以直接用网上的脚本爆破,但是要注意有些脚本只能提取zip压缩包的CRC32:
https://github.com/AabyssZG/CRC32-Tools
https://github.com/theonlypwner/crc32
解题
解压打开是一张图片
放进010,其实看了好久不知道怎么写,找到这一串字符

aHR0cHM6Ly93d3cubGFuem91cy5jb20vaTliMGtzZ,base64解码
解码得到https://www.lanzous.com/i9b0ksd
根据提示网址lanzous修改为lanzoux
打开下载得到flag.zip压缩包
解压
都进行了加密

注意到每一个文档都是1字节
最后一列是CRC32
使用CRC脚本进行爆破
import string
import binascii
s=string.printable
c=[0xF3B61B38,0xF3B61B38,0X6ABF4A82,0X5ED1937E,0X09b9265b,0x84b12bae,0x70659eff,0x90b077e1,0x6abf4a82]
password = ''
for crc in c:
for i in s:
if crc==(binascii.crc32(i.encode())&0xffffffff):
password =password + i
print(password)

拿到密码

图片png打不开

放到010
开头不是png有问题,拉到尾部

发现是倒的png,这就知道是将图片结构按倒序排列,我们将他复原
复原的python脚本
import re
import binascii
def read_file(filepath):
with open(filepath,'rb') as fp:
content=fp.read();
return content
#以二进制读取图片,并转为16进制
a = read_file('n.png')
hexstr = str(binascii.b2a_hex(a))
hexstr = re.findall("b'(.*?)'",hexstr)[0]
#每俩位分割成列表元素
result = []
result.append(re.findall(r'.{2}', hexstr))
result = result[0]
#按倒序排列,拼接列表为文本
daoxu = result[::-1]
hex= ''
for i in daoxu:
hex +=i
print(hex)

将得到的16进制粘贴为hex形式,另存为png

得到图片二维码

解开二维码拿到flag

6699

被折叠的 条评论
为什么被折叠?



