鸣雏恋
Category: General Skills
Source: 祥云杯2021
Author: unknown
Score: 5
Description
在喜欢的人面前,我可不能……丢脸啊……因为我,喜欢鸣人君…………
题目描述
题目给了我们一个docx,但是双击打不开。
我的解答
首先后缀改zip解压之,发现_rels
文件夹下有东西:key.txt
和一个ZIP压缩包。
将key.txt
拖入010 editor发现后面E2 80 8D
和E2 80 8C
出现的最多,猜测是零宽隐写:
https://330k.github.io/misc_tools/unicode_steganography.html
将key.txt中内容全选并复制,粘贴进去解码就有密码:
Because I like naruto best
利用这个密码将ZIP压缩包解压之后是很多鸣人和雏田的头像,而且从前面的文件上来看,应该是按照数字顺序,每8个一byte,雏田0,鸣人1。如果这样做的话,解出前三个字母是dat
。写脚本解出,发现前面为
data:image/png;base64,
将后面的内容base64解码之后写到PNG文件,就能看到flag。
要眼力看
脚本如下:
from tqdm import tqdm
from Crypto.Util.number import *
import base64
with open('_rels/love/out/0.png', 'rb') as f:
zero = f.read()
ans = ''
for i in tqdm(range(129488)):
with open(f'_rels/love/out/{i}.png', 'rb') as f:
s = f.read()
if (s == zero):
ans += '0'
else:
ans += '1'
s = long_to_bytes(int(ans, 2))).decode()
s = base64.b64decode(s[22:])
with open('gao_3.png', 'wb') as f:
f.write(s)
Flag
flag{57dd74fb21bb1aee50f19421bf836f23}
Reference
Writeup from https://zhuanlan.zhihu.com/p/402713931