CTFshow stega10

感谢ctf show平台提供题目

看一眼这张图片,平淡无奇。
在这里插入图片描述

使用010editor工具,查看一下,发现base64密文。
在这里插入图片描述

解密后是一个蓝奏云链接。
在这里插入图片描述

打开这个蓝奏云链接,我们下载到了一个加密的压缩包。

在这里插入图片描述

使用CRC爆破脚本得到解压密码。

447^*5#)7

在这里插入图片描述

下面是python脚本。

import binascii
import string

dic=string.printable
#输入密码文件的CRC码
crcl=[0xF3B61B38,0xF3B61B38,0X6ABF4A82,0X5ED1937E,0X09b9265b,0x84b12bae,0x70659eff,0x90b077e1,0x6abf4a82]
key = ''
for crc in crcl:
    for i in dic:
        if crc==(binascii.crc32(i)&0xffffffff):
            key =key + i
            print key

成功解压出来n.png,但却无法打开。
在这里插入图片描述
使用010editor查看一下,是怎么回事。
拉到尾部发现,出现了倒叙的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进制。
在这里插入图片描述
复制16进制,粘贴为hex形式。
在这里插入图片描述

另存为png图片。
在这里插入图片描述
扫码得到flag。
在这里插入图片描述

结语:
菜鸡的cc师傅,将会持续写出100篇高质量的CTF题目,供大家进行CTF的入门以及进阶,如果觉得文章对您有所帮助,欢迎关注一下cc师傅。

原创文章不易,点个赞再走吧。
在这里插入图片描述

发布了53 篇原创文章 · 获赞 14 · 访问量 3193

猜你喜欢

转载自blog.csdn.net/weixin_45940434/article/details/104380593