这是第一天的线下CTF赛 Misc有点弱 多多整理提升一下

unzip-png

题目给了一个 1.txt image.png 789c一眼zlib开头 image.png 将16进制数据转换为文件 image.png

尝试写Python脚本实现解压zlib数据

import zlib

with open('test.bin', 'rb') as f:
    compressed_data = f.read()


try:
    decompressed_data = zlib.decompress(compressed_data)

    # 将解压后的数据保存到文件
    with open('aaa.txt', 'wb') as f:
        f.write(decompressed_data)

    print("解压成功,输出文件为 'aaa.txt'")

except zlib.error as e:
    print(f"解压失败: {e}")

8950是PNG图片的文件头 image.png 打开提示损坏 尝试修复PNG 对其进行 tweakpng检查 提示两个错误 CRC 和 块错误 image.png image.png CRC高宽爆破即可 但是 块问题 可以明显发现 内容块 存在 标识 CTF1 CTF2 image.png 和正常的PNG比较后发现 其缺少正常的IDAT块 修改补充IDAT块 image.png

不在提示 PNG损坏 image.png 要明白一个道理 IDAT 块只有当上一个块充满时,才会继续一个新的块

image.png 因此 大块 应该在小数据块的上面 尝试 交换顺序后 可以得到正常的PNG图片 image.png 可以成功拿到flag

第47张图片

image.png 块段有明显的问题 直接rot47 就出了 emmmmmmmm image.png