BMZCTF-MISC(一) WriteUp

MISC

http://www.bmzclub.cn/challenges
解密

0x01 签到题

关注公众号:白帽子社区,回复关键字:BMZCTF 获取flag
签到题

0x02 2018 HEBTUCTF 签到题

2018 HEBTUCTF 签到题
下载压缩包。是个名为zip的文件,没有后缀名。用010editor打开,看下文件头部:
zip文件头
发现是个压缩包,添加后缀.zip,然后用winrar打开。
zip文件
发现又是一个无后缀文件,解压出来,再用010editor打开
type文件
疑似是个jpg文件,再看下文件尾部:
文件尾部
可以得到flag

0x03 2018 HEBTUCTF 你可能需要一个wireshark

2018 HEBTUCTF 你可能需要一个wireshark
下载附件,是个流量包文件,用wireshark打开:
在这里插入图片描述
追踪TCP流,发现是个DVWA的练习流量包。
在这里插入图片描述
逐个流查看,在第17个流发现上传了一个flag.txt文件。文件内容是一串加密内容。
flag.txt
观察密文,看到有大小写字母,数字和“=”,初步判断为base64加密,使用在线解密尝试,再url解码,得到flag。
base64
url解码

2018 护网杯 迟来的签到题

2018 护网杯 迟来的签到题
下载附件,解压后是一个文本,里面是一串密文:AAoHAR1TIiIkUFUjUFQgVyInVSVQJVFRUSNRX1YgXiJSVyJQVRs=,初步判断是base64密文,用base64解密后是一串乱码:
base64解密
查看压缩包内题目提示:easy xor???
可以判断是要异或后才能得到flag。写python脚本

import base64
str1 = 'AAoHAR1TIiIkUFUjUFQgVyInVSVQJVFRUSNRX1YgXiJSVyJQVRs='

str2 = base64.b64decode(str1)
for i in range(200):
    tmp=''
    for j in str2:
        tmp += chr(j^i)
    print (tmp)

运行后,可以得到flag
flag

Traffic_Light

下载是一张图片
在这里插入图片描述
对图片进行分解
得到1688张图片
在这里插入图片描述
观察图片,
1、发现第2的倍数的图片都是没有灯亮的。忽略不计。
2、绿灯和红灯总和为8或8的倍数时,下一张一定是黄色。
由此可以推断为二进制。绿为1,红为0
写脚本进行编码:

# -*-coding: utf-8 -*-
from PIL import Image
 
binstr = ""
flag = ""

def decode(s):
    return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])

for i in range(1168):
    image=Image.open(r'./202011/'+str(i)+'.jpg')
    # print (image.getpixel((115,55)))#输出颜色值
    # print (image.getpixel((115,145)))
    tmp1 = image.getpixel((115,55))
    tmp2 = image.getpixel((115,150))
    # print (type(tmp1))
    if(tmp1[0] > 250):
        binstr += '1'
    elif(tmp2[1] > 250):
        binstr += '0'
    else:
        binstr += ''
print (binstr)

for i in range(len(binstr)):
    if i%8==0:
        flag +=decode(binstr[i:i+8])
print(flag)

得到flag

0110011001101100011000010110011101111011010100000110110000110011001101000111001100110011010111110111000000110100011110010101111100110100011101000111010000110011011011100111010000110001001100000110111001011111011101000011000001011111011101000111001000110100011001100110011000110001011000110101111101110011001101000110011000110011011101000111100101011111011101110110100000110011011011100101111101111001001100000111010101011111001101000111001000110011010111110011000001110101011101000111001100110001011001000011001101111101
flag{Pl34s3_p4y_4tt3nt10n_t0_tr4ff1c_s4f3ty_wh3n_y0u_4r3_0uts1d3}

Fix it

下载后是一张二维码图片,但只有一个黑框
在这里插入图片描述
使用photoshop进行修补,并识别:
在这里插入图片描述
得到flag:flag{easyQRcode}

真正的CTFer

下载附件为一张图片
在这里插入图片描述
修改高度:
在这里插入图片描述
可以看到下面还有一张图片
在这里插入图片描述
将图片放大可以看到flag:
在这里插入图片描述
仔细看能看到flag
flag{d2b5543c2f8aa8229057872dd85ce5a9}

解不开的秘密

下载后是一个压缩包,里有一个file文件,和一个flag.docx文本
在这里插入图片描述
用文本工具打开file文件,里面有许多数字和少许的英文。怀疑是十六进制
放入010editor中
在这里插入图片描述
看到最后有个"=",怀疑是base64。用base64解码:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\RealVNC]

[HKEY_CURRENT_USER\Software\RealVNC\vnclicensewiz]
"_AnlClientId"="8f5cc378-2e1d-4670-80e0-d2d81d882561"
"_AnlSelected"="0"
"_AnlInclRate"="0.0025"

[HKEY_CURRENT_USER\Software\RealVNC\vncserver]

[HKEY_CURRENT_USER\Software\RealVNC\VNCViewer4]
"dummy"=""

[HKEY_CURRENT_USER\Software\RealVNC\VNCViewer4\MRU]
"00"="127.0.0.1"
"Order"=hex:00,01
"01"="127.0.0.1:5900"

[HKEY_CURRENT_USER\Software\RealVNC\WinVNC4]
"Password"=hex:37,5e,be,86,70,b3,c6,f3
"SecurityTypes"="VncAuth"
"ReverseSecurityTypes"="None"
"QueryConnect"=dword:00000000
"PortNumber"=dword:0000170c
"LocalHost"=dword:00000000
"IdleTimeout"=dword:00000e10
"HTTPPortNumber"=dword:000016a8
"Hosts"="+,"
"AcceptKeyEvents"=dword:00000001
"AcceptPointerEvents"=dword:00000001
"AcceptCutText"=dword:00000001
"SendCutText"=dword:00000001
"DisableLocalInputs"=dword:00000000
"DisconnectClients"=dword:00000001
"AlwaysShared"=dword:00000000
"NeverShared"=dword:00000000
"DisconnectAction"="None"
"RemoveWallpaper"=dword:00000000
"RemovePattern"=dword:00000000
"DisableEffects"=dword:00000000
"UseHooks"=dword:00000001
"PollConsoleWindows"=dword:00000001
"CompareFB"=dword:00000001
"Protocol3.3"=dword:00000000
"dummy"=""

可以看到中间位置有"Password"=hex:37,5e,be,86,70,b3,c6,f3
开头[HKEY_CURRENT_USER\Software\RealVNC\vncserver]中有RealVNC。于是用Vccx4.exe进行破解:
在这里插入图片描述
得到密码:!QAZ2wsx
用密码打开flag.docx,将图片移开,并全选修改字体颜色,可以看到flag
在这里插入图片描述

memory

下载附件后,用volatility进行分析

在这里插入图片描述
题目是“分析内存镜像,破解管理员的登录密码,flag为明文密码的MD5值”
我们分析镜像中的hash值:
在这里插入图片描述
得到密文:

Administrator   500     0182bd0bd4444bf867cd839bf040d93b        c22b315c040ae6e0efee3518d830362b
Guest   501     aad3b435b51404eeaad3b435b51404ee        31d6cfe0d16ae931b73c59d7e0c089c0
HelpAssistant   1000    132893a93031a4d2c70b0ba3fd87654a        fe572c566816ef495f84fdca382fd8bb

进行修改将中间的" “改为”:"

Administrator:500:0182bd0bd4444bf867cd839bf040d93b:c22b315c040ae6e0efee3518d830362b
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
HelpAssistant:1000:132893a93031a4d2c70b0ba3fd87654a        fe572c566816ef495f84fdca382fd8bb

存为文件,再用john进行爆破

在这里插入图片描述

可以得到密码123456789
再md5加密,就是flag:
在这里插入图片描述
但提交错误,可能是题目的问题。

赢战2019

下载附件,为一张图片
在这里插入图片描述
binwalk进行分析:
在这里插入图片描述
分解出两张图片
在这里插入图片描述
对二维码扫描:
在这里插入图片描述
无有用信息。
再对二维码图片进行分析:
在这里插入图片描述
可以在左下角看到flag
flag{You_ARE_SOsmart}
要写全。不是{}内的。。。。

2020sdnisc-CTF的起源

下载附件为一个文本
在这里插入图片描述
看到每一行后面基本都有==
怀疑是base64隐写。用脚本解密:

def get_base64_diff_value(s1, s2):
    base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
    res = 0
    for i in xrange(len(s2)):
        if s1[i] != s2[i]:
            return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))
    return res


def solve_stego():
    with open('flag.txt', 'rb') as f:
        file_lines = f.readlines()
        bin_str = ''
        for line in file_lines:
            steg_line = line.replace('\n', '')
            norm_line = line.replace('\n', '').decode('base64').encode('base64').replace('\n', '')
            diff = get_base64_diff_value(steg_line, norm_line)
            print diff
            pads_num = steg_line.count('=')
            if diff:
                bin_str += bin(diff)[2:].zfill(pads_num * 2)
            else:
                bin_str += '0' * pads_num * 2
            print goflag(bin_str)


def goflag(bin_str):
    res_str = ''
    for i in xrange(0, len(bin_str), 8):
        res_str += chr(int(bin_str[i:i + 8], 2))
    return res_str


if __name__ == '__main__':
solve_stego()

可以得到flag
在这里插入图片描述
补全大括号即可

2020sdnisc-简单的js

下载附件是一个js文件
打开:
在这里插入图片描述

是一段代码。给了算法过程和结果。只要逆运算就可以。
写脚本:

s='19131e18041b1d4c47191d19194f1949481a481a1d4c1c461b4d484b191b4e474f1e4b1d4c02'
flag=''
for i in range(0,len(s),2):
    tmp = int(s[i:i+2],16)
    
    #print (tmp)
    flag+=chr((255-128)-tmp)
print (flag)

得到flag:flag{db38fbff0f67e7eb3c9d274fd180a4b3}

2020sdnisc-损坏的流量包

下载附件,是一个流量包,但wireshark打不开。
用010editor打开。
在这里插入图片描述
在文件的结尾发现压缩包,提取出来,并保存为zip文件。打开
在这里插入图片描述
是一个base64加密,解密后,就是flag:flag{sdnisc_net_sQ2X3Q9x}

2020sdnisc-过去和现在

下载附件,是一张图片,用binwalk分析:
在这里插入图片描述

得到若干文件,逐一打开。
在这里插入图片描述
在21154中发现flag
在这里插入图片描述

2020sdnisc-左上角的秘密

下载附件,是一个文件和一个脚本。打开脚本:
是一段代码,对图片内容进行了加密,得到附件中的文件。写脚本进行逆运算:

flag_dec = open("flag.png","wb")
def file_decode(flag):
    i = 1
    while True:
        byte_str = flag.read(1)
        if (byte_str == b''):
            exit()
        byte_str = hex_decode(byte_str)
        file_write(flag_dec, byte_str)
        # print(byte_str, end="")
        i = i + 1

def hex_decode(byte_str):
    tmp = int.from_bytes(byte_str, byteorder="big")
    tmp = tmp ^ 128
    if (tmp % 2 == 0):
        tmp = tmp + 1
    else:
        tmp = tmp - 1
    tmp = bytes([tmp])
    return tmp

def file_write(flag_dec, byte_str):
    flag_dec.write(byte_str)

if __name__ == '__main__':
    with open("./flag_enc.hex", "rb") as flag:
        file_decode(flag)
flag_dec.close()

还原出图片
在这里插入图片描述
发现图片左上有条线。查看颜色:
在这里插入图片描述
猜测秘密在绿色中
使用脚本得到密文:

from PIL import Image
image =Image.open('flag.png')
c=0
aa=''
for i in range(120):
    aa+=chr(image.getpixel((c,c))[-2])
    c+=1
print (aa)

在这里插入图片描述

发现其中秘密:
ZmxhZ3tjNmU0Yzk5YTYzODhjNWQyYTlhZTZlZjZhODQzY2VhNn0=
Base64解密后得到flag:
flag{c6e4c99a6388c5d2a9ae6ef6a843cea6}

泰湖杯-MISC

下载附件,是一个压缩包,里面是一个文件和一个压缩包。
在这里插入图片描述
尝试各种方法无果后,将附件中的fun.zip删除。
在这里插入图片描述
再修复压缩包,可以发现密码没有了。
在这里插入图片描述
打开后,是一段密文
在这里插入图片描述
改后缀。并打开:
在这里插入图片描述
发现多出现段文字:
在这里插入图片描述
测试各种密码,发现希尔密码能解新发现的两句话:
在这里插入图片描述
得到一句新的字符串:
love and peaceee

用这句话做密码,使用rabbit解密剩余的一大段话:
在这里插入图片描述
得到:

LR2TMNLCGBOHKNDGGVRFY5JWGZTDAXDVMZTDCYK4OU4GCZRYLR2TSNTCHBOHKNJUMM4VY5JVGBSTOXDVHE3DIZC4OU2TIM3ELR2TQYLGHBOHKOJWGQYFY5JWGQ3DSXDVHE3GEOC4OU2TAZJXLR2TOZRTMROHKOBVME4VY5JVGRQTIXDVHAYDEOC4OU4GCZRYLR2TSNTCHBOHKNRRGY3VY5JVHA2WKXDVHAZDOMS4OU2WGMDBLR2TKNDDHFOHKODGMU3FY5JYMFSTMXDVG5QTOYK4OU3DENBQLR2TSNRUMROHKNRSGEYVY5JVMZTDKXDVHE3GEOC4OU3TSNJXLR2TQYLFGZOHKNLGMY2VY5JVGRRTSXDVHE3DIMC4OU2TMYRULR2TKNDDHFOHKNJWMM4VY5JUMZSWKXDVGU4TGN24OU4TMM3GLR2TMY3FGJOHKOBSG4ZFY5JYGM4GCXDVGVRGGMS4OU4GCZJWLR2TKOBVMVOHKNJUHEZFY5JYGM4GCXDVG43TGZK4OU3DEMJRLR2TKNDDHFOHKNRSGQYFY5JUMYYGMXDVHAYDKZK4OU4DKYJZLR2TSNTCHBOHKNRRGBSFY5JZGVRWIXDVGU2DGNS4OU3DENBQLR2TIZTFMVOHKNRWGJTFY5JYGI3TEXDVGY2DMOK4OU4GCMZWLR2TKNTCGROHKNJUMM4VY5JZHA2TQXDVGYYTAZC4OU2TIYZZLR2TKMZXGNOHKNDGMVSVY5JVGRRTSXDVG5QTOYK4OU4DOMLDLR2TSNRUGBOHKNJWMM4VY5JUMYYGMXDVGVTGMNK4OU2TIYZZLR2TMNBWHFOHKNJUMM4VY5JUMVQTMXDVHAZTQYK4OU2TIYZZLR2TONZTMVOHKNJUME2FY5JVHE4DEXDVHE4DKOC4OU2TSOBS

再进行base32的解密:
在这里插入图片描述
再Unicode解码:
在这里插入图片描述
再新佛曰解码:
在这里插入图片描述
得到一段话,用这然话解压fun.zip
得到音频文件。
再分析频谱,即可得flag
在这里插入图片描述

可乐加冰

下载附件,是一张图片:
在这里插入图片描述
用binwalk分析:
在这里插入图片描述

得到若干文件。
逐一查看,在2AE96文件中发现规律字符:
在这里插入图片描述
对其转为字符串:

s='834636363695438346369595364383469595954383469595364383463636363643834636363695438346369595364383469595364334453443834636953636438346369536954383463636953643834636369543344534438346369595438346369536954383463636363643834636363643344534438346369595364383463695953643834636369543834695363643344534438346363695364383463695369543834636369536438346369595954383469595364383469536954383463636363643834636953643834636369543834695369543834636959543834636369536'
print (s)
for i in range(0,len(s),2):
    print (chr(int(s[i:i+2])),end='')

得到:

S.$$$_+S.$__$+S.___+S.__$+S.$$$$+S.$$$_+S.$__$+S.__$+"-"+S.$_$$+S.$_$_+S.$$_$+S.$$_+"-"+S.$__+S.$_$_+S.$$$$+S.$$$+"-"+S.$__$+S.$__$+S.$$_+S._$$+"-"+S.$$_$+S.$_$_+S.$$_$+S.$___+S.__$+S._$_+S.$$$$+S.$_$+S.$$_+S._$_+S.$__+S.$$_$

很像jjcode。将”S”替换为”$”
再加上固定的开关和结尾:

$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+这里放密文+"\"")())();

再用jjcode解码:
在这里插入图片描述
既得flag

pcap

下载附件,是一个流量包。用wireshark打开:
并追踪tcp流:
可以看到其中一个流如下图:
在这里插入图片描述
可以看到flag。对流量观察规律:
在这里插入图片描述
发现含有flag信息的流长度都是91。按长度排序:
逐流进行拼接:
在这里插入图片描述
在这里插入图片描述
可以得到flag:
flag{d989e2b92ea671f5d30efb8956eab1427625c}

pcap_analysis

下载附件,为一个流量包。
用wireshark打开。并追踪tcp流
在其中一个流中发现如下图:
在这里插入图片描述
拼接得到flag: flag{323f986d429a689d3b96ad12dc5cbc701db0af55}

网鼎杯 2020 boom

下载附件,为一个exe文件,打开。
先是给了一段Md5码,在线进行爆破:
在这里插入图片描述
得到通关密码:en5oy
第二关是是一个三元一次方程
在这里插入图片描述

进行爆破:

for x in range(100):
    for y in range (100):
        for z in range(100):
            if (3*x-y+z==185)&(2*x+3*y-z==321)&(x+y+z==173):
                print (x,y,z)

得到解:
74
68
31
第三关是一个一元二次方程
在这里插入图片描述

一样爆破:

for x in range(1000000000):
    if(x*x+x==7943722218936282):
        print (x)
        break

得到解:89127561
最后得到flag:flag{en5oy_746831_89127561}

猜你喜欢

转载自blog.csdn.net/Crazy198410/article/details/109612549