ctfshow-stega10

打开之后是一张图片

 

使用010打开图片

发现一串base64密文

aHR0cHM6Ly93d3cubGFuem91cy5jb20vaTliMGtzZA

 

base64解密之后得到一个网址   https://www.lanzoui.com/i9b0ksd

下载打开后得到这个

 这里就没有了思路,看wp,才知道还要使用CRC爆破脚本得到解压密码

下载下来以后有一个密码文件夹,一个加密的压缩包。打开密码文件夹,我们发现每一个文档都是一字节,

这时我们可以根据文档的crc32**里面的值,运行如下脚本得到密码为

447^*5#)7

 脚本

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)

 

 

 

 输入密码后打开是一个图片,但是图片依然无法正常显示

使用010打开图片

 

 

末尾发现这是个PNG倒过来的,用脚本将他们写正

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

with open('PNG写正.txt', 'w') as f:
    for i in hex:
        f.write(i )

将txt中的内容以16进制复制到010中

发现写正后的文本png文件头还是倒过来的

手动将png头写正

 

 修正后得到一张二维码

 

 扫描得到flag

flag{我好难啊}

 

posted @ 2021-10-15 20:16  AttacBurlk  阅读(650)  评论(0)    收藏  举报