本垃圾新入坑ctf比较菜鸟,故众师傅解出来的 A Signal From ISSpyFlag 未解出来,以下的wp也仅供参考,并希望众师傅能提些建议

部分文件下载地址:merak-ctf.zip

千层套路

打开文件,发现是个以数字命名的压缩包,解压密码恰好是那个数字,写个脚本跑一下

import zipfile
import os

start = 'qctl.zip'
zipfile.ZipFile(start).extractall(path='tmp')

# cycle
round = 0

while True:
    round += 1
    l = os.listdir('tmp')
    for i in l:
        if '.zip' in i:
            # get the name and extract
            try:
                name = i.split('.zip')[0]
                zipfile.ZipFile('tmp/' + i).extractall(path='tmp', pwd=name.encode())
                print(f'Round {round} -> {i}')
                os.remove('tmp/' + i)
            except Exception as e:
                print(e)
                break

1000 Round 后拿到 flag
(忘了之后还有几个步骤,明天更上)

CyberPunk

解压发现一个exe文件,两种做法,可以老老实实打开,根据提示更改系统时间,然后得到 flag ,这里采用第二种。upx脱壳后ida打开,发现 flag

ezmisc

解压发现一个 500x319 像素的 png ,于是给他改成 500x500

即把此处的 01 3F 改为 01 F4 ,然后打开图片,发现flag

寻找xxx

解压是一段音频,仔细听得到电话号码,发给公众号得到flag

不眠之夜


拼图题,应该还有其他方法,不过我没想到

你能看懂音符吗

首先将文件头的 61 52 交换位置,修复rar,然后在 doc 文档里显示隐藏文字,发现一堆音符

打开在线转换器,选择音乐符号,解密得到flag

Unravel!!

打开文件,解压,在 JM.png 里拆分出了 aes.png ,内容是 Tokyo

提示是 aes 加密,然后打开 Look_at_the_file_ending.wav

在文件末尾果然发现了神奇字符

U2FsdGVkX1/nSQN+hoHL8OwV9iJB/mSdKk5dmusulz4=

然后在aes在线解密网站上输入得到信息,得到压缩包的解压密码

解压得到 Ending.wav 。使用 SilentEye 解得flag

Hello_Misc(这题是真的烧头发)

解压文件,得到一张神奇的图片

try to restore it

国际惯例,foremost拆解拼接文件

得到一个加密的压缩包,接下来尝试获取密码。尝试将这张图片下面的红色部分裁剪(一定要精准),得到新图 img.png

分析一通发现这玩意当成二进制来解是个疑似png的东西

于是写个脚本保存一下

from PIL import Image
import numpy as np
import re
import struct

img = Image.open('img.png')
a = np.array(img)
a.shape

c = ''
for i in range(58):
    for j in range(1024):
        if(a[i, j, 0] == 255):
            c += '1'
        else:
            c += '0'

b = re.findall(r'.{8}', c)

d = []
for i in b:
    d.append(int(i, 2))

o = open('out.png', 'wb')

for i in d:
    t = struct.pack('B', i)
    o.write(t)

o.close()

得到了一个神奇东西

解压压缩包,又得到了一串类似这样的神奇玩意

发现仅有四个数字,写脚本跑一下

fp = open('out.txt','r')
a = fp.readlines()
p = []
for i in a:
    p.append(int(i))
s = ''
for i in p:
    if i == 63:
        a = '00'
    elif i == 127:
        a = '01'
    elif i == 191:
        a = '10'
    elif i == 255:
        a = '11'
    s += a
    
d = re.findall(r'.{8}', s)
o = ''
for i in d:
    o += chr(int(i, 2))
print(o)

得到

rar-passwd:0ac1fe6b77be5dbe

解压rar,再次得到一个zip文件,看一下目录结构,把zip改成docx打开,拖到最下面

将文字颜色改为黑色(原来是白),得到

MTEwMTEwMTExMTExMTEwMDExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTEwMDAwMDAxMTExMTExMTExMDAxMTAx
MTEwMTEwMTEwMDAxMTAxMDExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTEwMTEwMDEx
MTEwMDAwMTAxMTEwMTExMDExMTEwMTExMTExMTAwMDExMTExMTExMTExMDAxMDAxMTAxMTEwMDAwMDExMTExMDAwMDExMTExMTEx
MTEwMTEwMTAwMDAxMTExMDExMTEwMTExMTExMDExMTAxMTExMTExMTEwMTEwMTEwMTAxMTExMTExMTAwMTEwMTExMTExMTExMTEx
MTEwMTEwMTAxMTExMTExMDExMTEwMTExMTAxMDExMTAxMTExMTExMTEwMTEwMTEwMTAxMTAxMTExMTAwMTEwMTExMTExMTExMTEx
MTEwMTEwMTAwMDAxMTAwMDAwMTEwMDAwMDAxMTAwMDExMTAwMDAwMTEwMTEwMTEwMTAxMTEwMDAwMDAxMTExMDAwMDExMTExMTEx

使用 b64steg 多行解密

➜  b64steg git:(master) ✗ python3 b64steg.py -f in.txt -s out.txt

➜  b64steg git:(master) ✗ cat out.txt 
110110111111110011110111111111111111111111111111101110000001111111111001101
110110110001101011110111111111111111111111111111111101111111111111110110011
110000101110111011110111111100011111111111001001101110000011111000011111111
110110100001111011110111111011101111111110110110101111111100110111111111111
110110101111111011110111101011101111111110110110101101111100110111111111111
110110100001100000110000001100011100000110110110101110000001111000011111111

将得到的文本重复制进docx中,搜索0

得到flag MRCTF{He1Lo_mi5c~}

Last modification:April 28th, 2020 at 11:07 pm