【青少年CTF S1·2026 公益赛】哦
一个哦010查看内容
zip文件头被反转
可以发现pk头但是被反转了 按照8字节反转回来
import struct def solve(): input_file = "哦" output_file = "flag.zip" try: with open(input_file, 'rb') as f: content = f.read() except FileNotFoundError: print(f"找不到文件: {input_file},请确认文件名或路径。") return recovered_data = bytearray() # 全文按8字节块反转的 chunk_size = 8 for i in range(0, len(content), chunk_size): chunk = content[i : i + chunk_size] recovered_data.extend(chunk[::-1]) with open(output_file, 'wb') as f: f.write(recovered_data) print(f"处理完成!已生成文件: {output_file}") print(" flag.zip 。") if __name__ == '__main__': solve()有加密
不是伪加密,爆破无解,只能已知明文进行爆破了
使用png固定头来进行已经明文攻击
提示:因为知道里面是png图片,所有的png图片的文件头都是89504E470D0A1A0A0000000D49484452,因此可以进行已知明文攻击bkcrack.exe -C flag.zip -c a.png -x 0 89504E470D0A1A0A0000000D49484452得到密钥
d590788c b34e73fb 40e733d1有key了直接解压
得到一张图片
提示:通过题目提示“图片怎么一模一样”,能猜测出是应该是双图盲水印双图盲水印
图片进行foremost可以得到两张图片进行双图盲水印
python bwmforpy3.py decode 2.png 1.png 3.png得到flag
flag{01d38cf8-e6f9-11f0-8fcd-11155d4a}