欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CTFshow stega10

程序员文章站 2022-05-12 11:59:52
...

感谢ctf show平台提供题目

看一眼这张图片,平淡无奇。
CTFshow stega10

使用010editor工具,查看一下,发现base64密文。
CTFshow stega10

解密后是一个蓝奏云链接。
CTFshow stega10

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

CTFshow stega10

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

447^*5#)7

CTFshow stega10

下面是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,但却无法打开。
CTFshow stega10
使用010editor查看一下,是怎么回事。
拉到尾部发现,出现了倒叙的PNG。
CTFshow stega10

那么我们知道了,是将图片的结构顺序,按倒序排列了,那么我们只要将它恢复回去就好了。

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进制。
CTFshow stega10
复制16进制,粘贴为hex形式。
CTFshow stega10

另存为png图片。
CTFshow stega10
扫码得到flag。
CTFshow stega10

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

原创文章不易,点个赞再走吧。
CTFshow stega10

相关标签: 刷题之旅100站