01-Misc01

得到一个音频文件。

使用 foremost 分离得到另外一个 wav,再使用 Audacity 查看频谱图。

得到密码:stego0626,在原本的 wav 文件里面找到一个缺少 zip 头部的压缩包文件。

将其复制出来补全头部 50 4B 03 04。

输入密码解压得到一个 flag 文件,放到 010 中查看 78 DA 是一个 zlib 的文件头。
方法一:

方法二:

方法三:

import zlib
compressed_data_hex = '789C4BCB494CAFB630343336363133B130334B3533324A3132374D3636B04C32324A4EB234304FAA0500CCE10A67'
compressed_data = bytes.fromhex(compressed_data_hex)
decompressed_data = zlib.decompress(compressed_data)
print(decompressed_data)

02-Misc02

得到一张图片。

png 最常见的隐写是 LSB 隐写使用 zsteg 查看通道。

zsteg -a green.png

得到密码 h16lly81a。

在一个通道内发现有个 zip 文件。

使用 zsteg 提取出来。

zsteg -E "extradata:0" green.png > green.zip

解压得到一个 rgb.txt 的文件里面倒是一些 rgb 像素点坐标。

使用 rgb 转图片脚本得到 flag。

from PIL import Image

# 读取rgb.txt文件
with open("rgb.txt", "r") as file:
    lines = file.readlines()

# 提取RGB颜色值
colors = [tuple(map(int, line.strip('()\n').split(","))) for line in lines if line.strip()]

# 遍历所有可能的宽度和高度组合
for width in range(259*2, 259*2 + 1):  # 高度和宽度需要从0爆破,这里是已经知道高度和宽度的情况
    for height in range(259, 260):
        # 创建图像
        image = Image.new("RGB", (width, height))

        # 设置像素点颜色
        total_pixels = width * height
        pixel_data = [color for color in colors * (total_pixels // len(colors) + 1)][:total_pixels]
        image.putdata(pixel_data)

        # 保存图像
        output_filename = f"./output_{width}x{height}.png"
        image.save(output_filename)

最后修改:2023 年 11 月 22 日
如果觉得我的文章对你有用,请随意赞赏