上一章节我们已经做完一场比赛的杂项题目,这次给大家介绍一下MRCTF中杂项题目
题目链接如下:
链接:https://pan.baidu.com/s/1IQWks6UXUFq5gbkpcGp9sw?pwd=t05h
提取码:t05h
首先打开题目后发现共有三张图片
老规矩,对于杂项的题目先扔到winhex或者010Editor工具进行查看
但是发现这几张图片的结尾处都是存在压缩包数据
第一张图片
第二张图片
第三张图片
感觉这应该是一整个压缩包文件,然后被拆分成了三个部分,那么把这三个压缩包数据合在一起看下是什么样子,因为压缩包的头是PK,所以要按照这个顺序来进行,拼装的顺序:Setsuna.jpg——Furan.jpg——Miku.jpg
我拼装的方式就是先找一个原本的压缩吧,然后把拼装的数据复制剪贴就去即可
压缩包打开后发现有密码,先用爆破工具进行爆破
G&eOhGcq(ZG(t2*H8M3dG&wXiGcq(ZG&wXyG(jtG&eOdGcq+aG(t5oG(jqG&eIeGcq+aG)6Q
rG&eOdH9<5qG&eLvG(jsG&nRdH9<8rG%++qG%__eG&eIeGc+|cG(t5oG(jsG&eOlH9<8rH8C_qH9<8oG&eOhGc+_bG&eLvH9<8sG&eLgGcz?cG&3|sH8M3cG&eOtG%_?aG(t5oG(jtG&wXxGcq+aH8V6sH9<8rG&eOhH9<5qG( tG&eOtG%+ qG&eLcH9<8sG&wUwGek2)
然后其实这个题目中还有其他东西,就是把另一个文件隐藏起来了,要是光这一串代码我还真不知道怎么弄,
#!/usr/bin/env python
import base64
import re
def baseDec(text,type):
if type == 1:
return base64.b16decode(text)
elif type == 2:
return base64.b32decode(text)
elif type == 3:
return base64.b64decode(text)
elif type == 4:
return base64.b85decode(text)
else:
pass
def detect(text):
try:
if re.match("^[0-9A-F=]+$",text.decode()) is not None:
return 1
except:
pass
try:
if re.match("^[A-Z2-7=]+$",text.decode()) is not None:
return 2
except:
pass
try:
if re.match("^[A-Za-z0-9+/=]+$",text.decode()) is not None:
return 3
except:
pass
return 4
def autoDec(text):
while True:
if b"MRCTF{" in text:
print("\n"+text.decode())
break
code = detect(text)
text = baseDec(text,code)
with open("flag.txt",'rb') as f:
flag = f.read()
autoDec(flag)
运行脚本后得到flag
MRCTF{Y0u_Are_4_p3rFect_dec0der}
题目链接如下:
链接:https://pan.baidu.com/s/1Dr8HWOEOmOKNTPG2jpSj2Q?pwd=bnww
提取码:bnww
首先打开压缩包发现需要密码,先放到010Editor里看看是不是存在伪加密什么的。
发现一切正常,那继续用爆破软件进行解密
爆破出密码后直接输入,会发现还是继续存在压缩包解密,那这就得好好观察一下,应该是压缩包套娃了
然后就直接上脚本即可,发现解压后共有600多个压缩包
最后解压缩出来一个“qr.zip”而且程序报错退出即可。
import zipfile
name = '0573'
while True:
fz = zipfile.ZipFile(name + '.zip', 'r')
fz.extractall(pwd=bytes(name, 'utf-8'))
name = fz.filelist[0].filename[0:4]
fz.close()
解压后发现最后有一个qr.zip压缩包,这个压缩包与其他不一样。那么我们就直接解压看看里面的东西
发现里面均是(255,255,255)和(0,0,0)使用脚本将RGB数据写成图片
from PIL import Image
x = y = 200
img = Image.new("RGB",(x,y))
file = open('qr.txt','r')
for width in range(0,x):
for height in range(0,y):
line = file.readline()
rgb = line.replace('(','').replace(')','').split(',')
img.putpixel((width,height),(int(rgb[0]),int(rgb[1]),int(rgb[2])))
img.save('flag.jpg')
MRCTF{ta01uyout1nreet1n0usandtimes}
题目链接如下:
链接:https://pan.baidu.com/s/1LAWYYJ7nO3MJ2QcMUxoRKg?pwd=y06j
提取码:y06j
首先打开文件发现已经损坏,一直打不开,那就直接放到编辑器里看看
发现是压缩包的文件头被篡改,那就直接给恢复过来保存
打开后发现就是一个文档,但是貌似这个文档好像隐藏了点东西。灰色部分也是有点东西的,我们进行尝试。
确实是隐藏了文字
![在这里插入图片描述](https://img-blog.csdnimg.cn/3003391dc19a4ff983665ce262a2fe57.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAVEpB5bCP5YKy,size_20,color_FFFFFF,t_70,g_se,x_16
题目提示是音符,直接音符解密
解密网站:https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=yinyue
但是有好多在复制音符的时候复制不了,那就直接先复制到·微信或者其他界面里,然后在复制到解密那里即可。最终得到flag
MRCTF{thEse_n0tes_ArE_am@zing~}
当然这个题还有其他解法,就是直接把文档换后缀,直接改成压缩包的形式
也可以直接解出。
题目链接如下:
链接:https://pan.baidu.com/s/19CkjF7XcGJG04KdF8l941g?pwd=n0n0
提取码:n0n0
首先打开题目看到是一个数学题(第一时间想到的就是,,,,拉倒吧,就我这水平,,,哎)
直接上脚本即可(真得好好学习一下py代码,真是万能的)
a=2
for i in range(19260816):
a = a * 10 + 2
a%=(1e9+7)
print(a)
最终直接去除小数点以后位置即可,得到flag
flag{577302567}
题目链接如下:
链接:https://pan.baidu.com/s/1pPxSah0RXQuhJUWu2brtPw?pwd=taqg
提取码:taqg
首先打开题目发现文档内容如下
看到这个数字再联想到题目是不是键盘的的按键顺序,但是经过长时间的摸索终于得出了这个题解,就是这个按键对应的是手机的九宫格汉字,6就代表m,666就代表这个按键的第三个字母o,22代表b,以此类推即可得到flag
flag{mobilephond}
题目链接如下:
链接:https://pan.baidu.com/s/1TSC35uHJDKCfgbpfG89g8g?pwd=04po
提取码:04po
打开文件夹后发现,好家伙,都是一堆图片,好几十张图片看来是都得一个个拼凑出来才能得到flag了。
然后看看图片属性
一共是120张,每张都是200 x 100,应该长:10张图片,宽:12张图片,那么拼起来的总图就应该是长:2000 x 宽:1200
直接使用使用montage和gaps两个工具拼接即可(两种工具大家可以自行去网上下载即可)
montage *jpg -tile 10x12 -geometry 200x100+0+0 flag.jpg
gaps --image=flag.jpg --generations=40 --population=120 --size=100
最终拿到flag
flag{Why_4re_U_5o_ShuL1an??}
题目链接如下:
链接:https://pan.baidu.com/s/17udx0KxJdmZm2nok9kTP0Q?pwd=wgjy
提取码:wgjy
文件下载后是一个音频文件
听着貌似是SSTV,使用QSSTV解析
最终得到flag
flag{r3ce1ved_4n_img}
题目链接如下:
链接:https://pan.baidu.com/s/1cinxZI2STJrHfGZ1HS810A?pwd=eloq
提取码:eloq
打开题目发现图片如下
第一时间想到的就是是不是在属性里隐藏,或者直接分离什么的,但是试过了都不是,试试是不是把图片隐藏宽高了
修改宽高后发现下面存在flag
flag{1ts_vEryyyyyy_ez!}
题目链接如下:
链接:https://pan.baidu.com/s/1j_KISqyoP0qk3PdbUQAzJQ?pwd=wy39
提取码:wy39
打开题目后发现就是一个exe文件
先把上面的英语翻译一下
意思就是时间到那个时候就可以,那就直接更改时间就行
得到flag
flag{We1cOm3_70_cyber_security}