刷题之旅第31站,CTFshow 红包题第五弹

感谢ctf show平台提供题目

下载到了题目的压缩包,放入010editor中,查看一下。

工具报错了,说明压缩包里面有东西。
在这里插入图片描述

看见尾部是 FFD9 就知道,压缩包里面有一张jpg图片。
在这里插入图片描述

ctrl + F 进行搜索jpg的文件头。FFD8
在这里插入图片描述

创建一个hex文件,并把FFD8 ~ FFD9之间的内容,复制出来,另存为jpg。
在这里插入图片描述
得到一张logo图片。
在这里插入图片描述
使用steghide 工具,密码为123456,解密图片得到提示信息。
(别问我为什么用这个工具,为什么是这个密码。我也是一顿尝试,不断猜测才解的。)

在这里插入图片描述

在这里插入图片描述

得到一串base64,进行解密得到了。

https://www.lanzous.com/i9dpjxe

下载后,是一大堆的数字,仔细观察里面的字母 并没有大于f的,那么就按常规思路,每俩个字符,16进制转文本。(原理:16进制→10进制→ascii码)

在这里插入图片描述
python脚本如下:

import re

def read_file(filepath):
    with open(filepath) as fp:
        content=fp.read();
    return content

number = read_file('flag.txt')
result = []
result.append(re.findall(r'.{2}', number))
result = result[0]

print(result)

strings =''
for i in result:
    y = bytearray.fromhex(i)
    z = str(y)
    z= re.findall("b'(.*?)'",z)[0]
    strings += z

print(strings)

with open('test.txt', 'w') as f:
    f.write(strings)

转换完之后,得到这样的文本。
在这里插入图片描述

看这个结构,我们就知道,是坐标 与 颜色值,那么用脚本把这个文本画出来。

从网上下载到的一个脚本。
在这里插入图片描述

通过阅读这个脚本,我们发现刚刚转换出来的文本,使用这个脚本并不能直接画出来,我们需要对刚刚的文本进行一下处理。

1、把坐标去掉
2、每个颜色值后加入换行符

处理文本脚本如下:

import re

def read_file(filepath):
    with open(filepath) as fp:
        content=fp.read();
    return content

result = read_file('test.txt')

rgb = re.findall("\((.*?)\)",result)

#提出RGB
result = ''
for i in range(len(rgb)):
        result = result + rgb[i] + '\n'

with open('rgb2.txt', 'w') as f:
    f.write(result)

转换好了之后,这个文本就很规范了。
在这里插入图片描述

RGB画图脚本如下:

#-*- coding:utf-8 -*-
from PIL import Image
import re

x = 72 #x坐标  通过对txt里的行数进行整数分解
y = 74 #y坐标  x*y = 行数

im = Image.new("RGB",(x,y))#创建图片
file = open('rgb2.txt') #打开rbg值文件

#通过一个个rgb点生成图片
for i in range(0,x):
    for j in range(0,y):
        line = file.readline()#获取一行
       # line = line.replace('\n','')
        print(line)
        rgb = line.split(",")#分离rgb
        print(rgb)
        im.putpixel((i,j),(int(rgb[0]),int(rgb[1]),int(rgb[2])))#rgb转化为像素
im.show()
im.save('1.png')

运行RGB画图脚本后得到了一张二维码。
在这里插入图片描述

二维码并不是很规范,打开ps工具。

新建一个大一点的画布。
在这里插入图片描述
在这里插入图片描述

矩形工具选中下部分,剪切 平移,得到完整二维码。
在这里插入图片描述

在这里插入图片描述

扫码得到flag,题目结束。

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

发布了50 篇原创文章 · 获赞 12 · 访问量 1884

猜你喜欢

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