Single

[MRCTF2020]全部MISC做题记录6 min read

[MRCTF2020]不眠之夜

题目下载

很简单明了了,就是让你拼图。拼的我心力交瘁,很讨厌这样的题(。刚开始是一点点拼的,然后逐渐失去耐心,了解了一款拼图神器gaps。

首先用montage命令将图片碎块一点点拼起来,之后再用gaps将其还原:

montage *.jpg -geometry +0+0+0 ok.jpg

eog ok.jpg

gaps –image=ok.jpg –generations=50 –population=120 –size=50

MRCTF{Why_4re_U_5o_ShuL1an??}

[MRCTF2020]你能看懂音符吗

题目下载

开头改为RAR,用word打开,记得勾选显示隐藏文字,得到:

呀!一不小心把文档里的东西弄没了……

♭♯♪‖¶♬♭♭♪♭‖‖♭♭♬‖♫♪‖♩♬‖♬♬♭♭♫‖♩♫‖♬♪♭♭♭‖¶∮‖‖‖‖♩♬‖♬♪‖♩♫♭♭♭♭♭§‖♩♩♭♭♫♭♭♭‖♬♭‖¶§♭♭♯‖♫∮‖♬¶‖¶∮‖♬♫‖♫♬‖♫♫§=
这都让你发现了,可是你能看懂吗?

千千秀字解密就可以了。

MRCTF{thEse_n0tes_ArE_am@zing~}

[MRCTF2020]ezmisc

题目下载

拖到kali里说图片CRC错误,很显然修改高度即可qwq。

MRCTF{1ts_vEryyyyyy_ez!}

[MRCTF2020]CyberPunk

题目下载

把系统时间改为2020年的9月17即可。

MRCTF{We1cOm3_70_cyber_security}

[MRCTF2020]千层套路

题目下载

这道题还挺好玩的!夸夸!

第一步写脚本解压缩包就可以啦!

import zipfile
import os

file_path = "0573.zip"

while 1:
    zipFile = zipfile.ZipFile(file_path)
    (filepath,tempfilename) = os.path.split(file_path)
    (filename,extension) = os.path.splitext(tempfilename)
    try:
        zipFile.extractall(pwd= bytes(filename, "utf8" ))
        print("破解成功,密码为: " + filename)
        print(zipFile.namelist())
        file_path = "".join(zipFile.namelist())
    except:
        break

查看最后得到的qr.txt是一堆坐标,将其转换为图片:

最后扫码得到flag:MRCTF{ta01uyout1nreet1n0usandtimes}

[MRCTF2020]Unravel!!

题目下载

给了三个文件,分别是JM.pngLook_at_the_file_ending.wavwin-win.zip

首先对JM.png进行提取,得到aes.png,图片内容为“Tokyo”,暂时不知道有啥用,根据图片名字猜测是密钥。

用010editor打开Look_at_the_file_ending.wav,在尾部发现这一串东西:

key=U2FsdGVkX1/nSQN+hoHL8OwV9iJB/mSdKk5dmusulz4=

密钥是上一步的“Tokyo”,解密得到:CCGandGulu

“CCGandGulu”就是win-win.zip的解压密码,解压后得到Ending.wav

用SilentEye打开Ending.wav,点击Decode,得到flag:

MRCTF{Th1s_is_the_3nd1n9}

[MRCTF2020]pyFlag

题目下载

开局三张二刺螈mm,一看就是死宅.jpg。

依次用十六进制编辑器打开Setsuna.jpg、Furan.jpg和Miku.jpg,把尾部数据拼接起来得到一个加密的zip:

用ARCHPR可以很容易的得到压缩文件的口令:1234

hint.txt:

我用各种baseXX编码把flag套娃加密了,你应该也有看出来。
但我只用了一些常用的base编码哦,毕竟我的智力水平你也知道…像什么base36base58听都没听过
提示:0x10,0x20,0x30,0x55

flag.txt:

G&eOhGcq(ZG(t2*H8M3dG&wXiGcq(ZG&wXyG(j~tG&eOdGcq+aG(t5oG(j~qG&eIeGcq+aG)6Q<G(j~rG&eOdH9<5qG&eLvG(j~sG&nRdH9<8rG%++qG%_eG&eIeGc+|cG(t5oG(j~sG&eOlH9<8rH8C_qH9<8oG&eOhGc+_bG&eLvH9<8sG&eLgGcz?cG&3|sH8M3cG&eOtG%?aG(t5oG(j~tG&wXxGcq+aH8V6sH9<8rG&eOhH9<5qG(<E-H8M3eG&wXiGcq(ZG)6Q<G(j~tG&eOtG%+<aG&wagG%__cG&eIeGcq+aG&M9uH8V6cG&eOlH9<8rG(<HrG(j~qG&eLcH9<8sG&wUwGek2)

下面是官方WP提供的脚本,脚本库+1

#!/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)

MRCTF{Y0u_Are_4_p3rFect_dec0der}

[MRCTF2020]寻找xxx

题目下载

频谱图发现可疑内容:

这玩意看着就眼熟,后来想起来是拨号音隐写(dtmf),可以参考EDS师傅的博客:http://www.ericdshen.com/index.php/archives/5/

用dtmf2num工具轻松解决:

dtmf-decoder脚本

然后看了别的师傅的WP才知道要关注战队的公众号并发送它才能得到flag:

MRCTF{Oh!!!!!_Y0u_f1nd_my_secret}

[MRCTF2020]Hello_ misc

题目下载

得到一个加密的flag.rar和一个try to restore it.png。可以用foremost拆解图片得到另一个加密压缩包,命名为out.zip。

用stegsolve神器打开try to restore it.png,发现隐藏的图片:

给了提示,压缩包密码为:!@#$%67*()-+

尝试了下,这个密码是out.zip的密码,解压后得到一堆数字,仔细观察发现只有63,127,191,225这四种,很明显是TTL,转成文字:

import re

txt = open("out.txt",'r')
line = txt.readlines()
number = []
flag = ""
for i in line:
    number.append(int(i))
for i in number:
    if(i == 63):
        flag += "00"
    elif(i == 127):
        flag += "01"
    elif(i == 191):
        flag += "10"
    else:
        flag += "11"
strr = re.findall(r'.{8}', flag)
for i in strr:
    print(chr(int(i,2)),end="")

运行后得到rar的密码:0ac1fe6b77be5dbe

解压rar得到一个fffflag.zip,翻了下里面的内容很像word,改后缀为docx得到一串这玩意:

MTEwMTEwMTExMTExMTEwMDExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTEwMDAwMDAxMTExMTExMTExMDAxMTAx
MTEwMTEwMTEwMDAxMTAxMDExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTEwMTEwMDEx
MTEwMDAwMTAxMTEwMTExMDExMTEwMTExMTExMTAwMDExMTExMTExMTExMDAxMDAxMTAxMTEwMDAwMDExMTExMDAwMDExMTExMTEx
MTEwMTEwMTAwMDAxMTExMDExMTEwMTExMTExMDExMTAxMTExMTExMTEwMTEwMTEwMTAxMTExMTExMTAwMTEwMTExMTExMTExMTEx
MTEwMTEwMTAxMTExMTExMDExMTEwMTExMTAxMDExMTAxMTExMTExMTEwMTEwMTEwMTAxMTAxMTExMTAwMTEwMTExMTExMTExMTEx
MTEwMTEwMTAwMDAxMTAwMDAwMTEwMDAwMDAxMTAwMDExMTAwMDAwMTEwMTEwMTEwMTAxMTEwMDAwMDAxMTExMDAwMDExMTExMTEx

按行依次解码,搜索“0”并高亮:

MRCTF{He1Lo_mi5c~}

[MRCTF2020]摇滚DJ

题目下载

(。打开这b声差点没给我送走。

憋了好久,问了下Ga1@xy师傅才知道是无线电Q Q

给我传了robot36:https://play.google.com/store/apps/details?id=xdsopl.robot36

偷偷更新(。:

neverno师傅教了我还可以用qsstv来一把梭这道题,非常感谢。

执行命令:

sudo apt install qsstv

安装完成后输入qsstv打开此软件,在设置里选择Sound→From file

merak{r3ce1ved_4n_img}

[MRCTF2020]小O的考研复试

题目下载