西电CTF平台——NPC²CTF 2025 WriteUP Misc篇
Week1 - Misc
r!g!b!
拿到图片一看,大概率就是lsb隐写了,用zsteg secret.bmp --all命令查看,发现有个压缩包。

zsteg -e b8,rgb,lsb,xy secret.bmp -> flag.zip导出压缩包,有一个flag.docx文件,虽提示文件损坏,但不影响,查看拿到flag。

嘟嘟噜
先对wife.jpg进行隐写判断,没有结果。用HxD打开,在最后看到VC_is_1n7erst1n9字符串。

另一个文件又是一个不知后缀的文件,马上联想到可能是个磁盘加密卷。用VeraCrypt打开,密钥是第一步拿到的字符串,得到fake.txt。

又给一个key,看来刚刚那个可能是个假的,需要用这个作为密钥,得到flag(maybe).txt。

进行base64解码,得到16进制字符串。

复制到HxD中,是个逆序的flag。

倒一下即可拿到flag。flag{VC_is_S0o00o_ea5Y!!!}
kotlin?
直接玩通关就能拿到flag了。flag{it_is_not_funny_to_use+korge}
正解不会。
Week2 - Misc
猜猜在哪
使用百度翻译,翻译下案板上的文字可以知道是捷克文。


再去翻译其他的捷克文,希望能获得一些信息,发现全都是黇鹿的生活习性,没卵用。看到右上角的标志LESY,去搜索lesy zoo 捷克。


匹配上了。把这四个公园名字都试一下,得到密码为Zookoutek Kunratice。

解压打开1.txt。

进行rot8000解码拿到flag。

反方向的钟
第一次遇到mid的音频文件隐写,上网搜一下。

再根据提示音频从最低的位置看怎么看着有点不对劲,可以知道是midi的lsb隐写,利用脚本提取。
import mido
def extract_lsb_from_midi(midi_path):
mid = mido.MidiFile(midi_path)
binary_data = []
for track in mid.tracks:
for msg in track:
if msg.type == 'note_on':
velocity = msg.velocity
lsb = velocity & 1
binary_data.append(str(lsb))
binary_str = ''.join(binary_data)
bytes_list = [int(binary_str[i:i + 8], 2) for i in range(0, len(binary_str), 8)]
m = bytes(bytes_list)
return m
m = extract_lsb_from_midi('E:/新建文件夹/hide.mid')
print(m)
结果如下。

前面就是flag了,不过有一个不可见字符,将其替换成下划线即可。flag{cAn_y0u_g0_b@ck_to_t3e_time_wh3n_yOu_l0v3d_me}。
Final - Misc
情书
拿到手就知道是摩斯密码,解码。

没思路了,上网搜索一下情书、五层、摩斯,发现是一个表白密码,按照顺序可以得到最终内容iloveyoutoo。

用VeraCrypt挂在情书文件,密钥就是iloveyoutoo,得到flag.txt。

没有任何东西,服了。查看回收站,有个小鹤.txt文件,很明显的提示了,小鹤输入法。

根据小鹤输入法的对照表进行翻译。

shuangpin zhende henyou yisi bushima
key jiushi xiamian zheduanhua de quanpin xiaoxie
shuangpin shi zheyang dazide
所以flag就是flag{shuangpinshizheyangdazide}。
final_happy
查看图片属性,在作者栏看到编码字符串。

base64解码,拿到明文字符串。i_love_rose

kali里用steghide提取隐藏信息,密码是i_love_rose。

HxD打开flag.txt,看到了WAVE关键词,应该是个wav文件。

但是文件头有点问题,需要改成524946,并修改后缀为wav。

Audacity打开文件,看到明显的摩斯密码。

翻译一下。

提交,不对,转换成小写在提交还是不对。哪里出错了?回去再看波形,有些地方的空特别宽。

会不会是有个下划线,将特别宽的空转换成下划线再提交,成功。
flag{m4g1c_byt3s_1s_the_w4y}
浙公网安备 33010602011771号