这是第一天的线下CTF赛 Misc有点弱 多多整理提升一下
unzip-png
题目给了一个 1.txt
789c
一眼zlib开头
将16进制数据转换为文件
尝试写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图片的文件头
打开提示损坏 尝试修复PNG 对其进行 tweakpng检查
提示两个错误 CRC 和 块错误
CRC高宽爆破即可
但是 块问题 可以明显发现 内容块 存在 标识 CTF1 CTF2
和正常的PNG比较后发现 其缺少正常的IDAT块 修改补充IDAT块
不在提示 PNG损坏
要明白一个道理 IDAT 块只有当上一个块充满时,才会继续一个新的块
因此 大块 应该在小数据块的上面
尝试 交换顺序后 可以得到正常的PNG图片
可以成功拿到flag
第47张图片
块段有明显的问题
直接rot47 就出了 emmmmmmmm