CTFshow菜狗杯MiscWP(9~19)
7.1.05
散了吧,要打游戏的
标题长得很像游戏的版本号,题面给了个QQ群号,搜了一下,是一个叫做金融帝国的游戏,当你把游戏下载下来,多研究游戏的背景信息,就可以发现flag啦。
ctfshow{Cap1tal1sm_Lab_1s_S0_G00d_Gam3}
黑丝白丝还有什么丝?
打开后是一个抖音视频,(吞咽),白丝代表点,黑丝代表杠,转场画面为分隔符。所以我们对着视频可以打出一下密码:
.-- ....- -. - - ----- -... ...-- -- --- .-. . -.-. ..- - .
摩斯密码翻译后得到:
ctfshow{W4NTT0B3MORECUTE}
我吐了你随意
下载获得一个很直接的零宽度字符隐写文档,甚至都写在文件名上了,我们用网站去提取得到flag:
ctfshow{OP_is_for_Over_Power}
这是个什么文件?
尝试打开压缩包,发现文件被加密了。改变文件头中的09
为00
去除伪加密后拿到一个不知道是什么类型的文件。
kali告诉我们这是一个python3.7的编译后文件,我们可以改文件后缀名为pyc,扔到网站去反编译python文件:
得到如下python文件:
#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 3.7
flag = bytes(
[
99,
116,
102,
115,
104,
111,
119,
123,
99,
100,
106,
110,
106,
100,
95,
53,
54,
53,
102,
95,
71,
67,
68,
72,
95,
107,
99,
114,
105,
109,
125,
]
).decode()
print(flag)
执行代码,得到如下flag:
ctfshow{cdjnjd_565f_GCDH_kcrim}
抽象画
文件中有一些意义不明的内容,推测是base系列编码,使用basecracker解码:
依次是base58,base32,base64.
最后得到一串十六进制数据,使用010新建PNG:
得到如下图片:
使用npiet编译运行图片:
ctfshow{dec8de_frejnv_frejer89}
迅疾响应
题面给了一个扫不出来的二维码,我们使用在线工具分析得到:
但是只拿到一半的flag,二维码结构如下图:
猜测可能是信息修正隐藏了flag的后半部分,擦除校正码左边的图像:
分析得到:
ctfshow{11451419-1981-landexiangle}
我可没有骗你
已知压缩包密码有8位,我们直接暴力破解,得出密码为55813329。用010打开发现后缀mp3错误,应为wav。使用silenteye解码:
ctfshow{aha_cdsc_jejcfe5rj_cjfr24J}
你被骗了
Never gonna give you up~
使用MP3stego工具解码,密码设置为文件名:
在输出的文件中找到flag:
ctfshow{chdv_1dcs_cjksnjn_NJDSjdcdjn}
一闪一闪亮晶晶
文件中有一个没有加密的图片,使用汉信码解码:
这就是压缩包的密码,解压后得到一段无线电音频,我们使用RX-SSTV接受信号:
ctfshow{NNICCETOMMETYOU}
一层一层一层地剥开我的♥
这题可以算是菜狗杯MISC最难的一题了
打开压缩包,里面有这些东西:
是不是很熟悉?这就是word文档的内部文件,我们修改文件名为doc,得到了以奇怪方式写的文字:
改字体为宋体看到如下信息:
Twinkle twinkle little star,how I wonder what you are
把原来的zip放到010里,看到最后隐藏了一份rar文件:
截取这一段为新文件,得到一个加密的压缩包:
猜测密码与word文档内容有关,最后试出来是简谱数字:11556654433221
解码后得到两个文件,♥根据内容发现是RAR文件,补全文件头打开发现还要密码,暂且不管。010打开jpg发现最后还有一张jpg,复制新建打开后如图:
将winkwink~作为密码打开压缩包,里面有♥.txt,内容为:👚👫👝👪👟👦👮👲👎👘🐧👖👮👘👖🐺👦👥👞👩🐷👫👬👣👘👫👠👦👥👪👵👴。
使用emoji解码工具得到flag:
ctfshow{Wa0_wa_Congr@tulations~}
打不开的图片
压缩包里面有一张打不开的图片,使用010查看十六进制码,发现文件头与PNG文件头十六进制码相加为100,写一个python脚本制作图片:
f1 = open("./misc5.5.png","rb")
f2 = open("./output.png","wb")
all_data = f1.read()
lt = []
for i in all_data:
if i == 0:
lt.append(i)
else:
lt.append(0x100 - i)
f2.write(bytes(lt))
f1.close()
f2.close()
得到如下图片:
ctfshow{84a3ca656e6d01e25bcb7e5f415491fa}