Skip to content

鸣雏恋

Category: General Skills

Source: 祥云杯2021

Author: unknown

Score: 5

Description

在喜欢的人面前,我可不能……丢脸啊……因为我,喜欢鸣人君…………

zip

题目描述

题目给了我们一个docx,但是双击打不开。

我的解答

首先后缀改zip解压之,发现_rels文件夹下有东西:key.txt和一个ZIP压缩包。

key.txt拖入010 editor发现后面E2 80 8DE2 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。

img要眼力看

脚本如下:

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