BaseCTF Week3 Web 与 Misc 解题思路
本次分享主要涵盖 Week3 的杂项(Misc)部分,涉及隐写、文件恢复及简单的加密算法还原。以下是具体题目的分析与解法。
1. 白丝上的 flag
题目描述: 出题人赠送 flag 时遭遇信号干扰,在不知名小网站找到了写入 flag 前的图片,尝试还原信息。提示 flag 是单色。
附件分析:
附件包含一张图片和一段 Python 脚本 task.py。脚本逻辑是对图像像素进行混淆处理。
from PIL import Image
import sys
def ez_add(a, b, c, d):
global iv
h = (a + b + c + d + iv) % 256
e = b
f = c
g = d
iv = (b + c + d + iv) % 256
return e, f, g, h
def confuse(data):
r, g, b, a = data
for _ in range(8):
r, g, b, a = ez_add(r, g, b, a)
return r, g, b, a
def confuse_image(flag):
global iv
iv = flag.getpixel((1, 1))[0]
img = Image.new('RGBA', (flag.width, flag.height))
for w in range(img.width):
for h in range(img.height):
img.putpixel((w, h), confuse(flag.getpixel((w, h))))
return img
if __name__ == '__main__':
iv = 0
flag = Image.open('./de_image.png')
img = confuse_image(flag)
img.save()


