本文最后更新于:2023年8月25日 下午
ctfshow【misc】 杂项签到 zip伪加密
misc2
偶然发现我竟然还有个软盘,勾起了我的回忆。
软盘也可以用来存储信息,现在一般都不用了。
我们可以使用vmware去挂载软盘
我们在这里添加一个软盘,然后再选择一下路径
打开虚拟机,得到flag:
miscx 打开zip压缩包,里面有一个png图片和一个doc加密文档:
图片的crc不对,我们可以修复它(然并卵)
我们猜测压缩包解密密码就是:2020.
解密打开doc:
好像是什么音符加密,我们解密一下:
根据压缩包提示
2020快乐! rat?or?
我们猜测密码是 Rabbit类型,密钥为2020
用这个密码去打开hint:
进行了多次base64加密和url编码,我们写个脚本解密:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import base64import urllib.parse f = open ("C://Users/LIKE/Desktop/hint.txt" , "r" ) data = f.read()while True : try : data = urllib.parse.unquote(base64.b64decode(data).decode()) except : print (data) exit(0 ) 输出: welcome_to_2020 flag is coming... the key is hello 2020 !
key是:hello 2020!
,打开flag.txt即可
misc50 010打开png图片:
1 2 3 4 5 base64解密: JNCVS62MMF5HSX2NMFXH2CQ= base32解密: KEY{Lazy_Man}
我们得到一个key。应该是用来解压缩的。我们使用foremost分离得到一个压缩包:
解压后打开txt文件:
我们使用脚本将其转化为16进制:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import redef read_file (filepath ): with open (filepath) as fp: content = fp.read() return content number = read_file('C://Users/LIKE/Desktop/thienc.txt' ) result = [] result.append(re.findall(r'.{2}' , number)) result = result[0 ] strings = '' for i in result: y = bytearray .fromhex(i) z = str (y) z = re.findall("b'(.*?)'" , z)[0 ] strings += z b = strings.split('0x' ) strings = '' for i in b: if len (i) == 1 : i = '0' + i strings += iwith open ('test.txt' , 'w' ) as f: f.write(strings)
然后转为转为2进制格式保存为7z:
1 2 3 4 5 6 7 8 import binascii hex_data = open ("C://Users//LIKE//Desktop//result.txt" ).read() out=open ('C://Users//LIKE//Desktop//f.7z' , 'wb' ) out.write(binascii.unhexlify(hex_data)) out.close()print ("转换成功!" )
打开后存在加密压缩包,密钥:KEY{Lazy_Man}
打开,发现一串编码,发现这段编码进行了多次base64和base32加密
我们使用正则匹配识别并解密:
1 2 3 4 5 6 7 8 9 10 11 12 13 import reimport base64 f = open ("C://Users/LIKE/Desktop/secenc.txt" , "r" ) data = f.read().encode()while True : if re.match ('^[2-7A-Z=]+$' , data.decode()): data = base64.b32decode(data) elif re.match ('^[0-9a-zA-Z=+/]+$' , data.decode()): data = base64.b64decode(data) else : print (data.decode()) break
输出:
这应该是Ook!
编码,但是是简化形式的,我们之间使用网站解密:
1 2 3 4 5 6 7 8 +++++ +++++ [ - >++ +++++ +++ <] >++ . + +++++ . <+++ [ - >-- - <] >- - . +++ +++ . <++++ [ - >+++ + <] >+ +++ . < +++++ + [ - >- ----- <] >. < +++ [ - >+++ < ] >+++ ++ . ++ +++++ . ---- ----- . <+++ ++++ [ - >--- ---- < ] >-- . <++++ +++ [ - >++++ +++ <] >++++ +++++ +++ . - ----- -- . -- ---- . <++++ [ - >++ ++ <] > +++++ . <+++ +++ [ - >---- -- <] > - . <++ ++ [ - > ++++ < ] >. ++ ++ . <+ ++ [ - > --- <] >---- -- . <+ +++ [ - >++++ <] >++ . ---- --- . < +++++ + [ - >- ----- <] >-- ----- - . <++ +++++ [ - >++ +++++ <] >++ ++ . ++ +++++ . ++++ ++++ . <++++ +++++ [ - >-- ----- -- <] > ----- . <+++ +++++ + [ - >+ +++++ +++ <] >++++ +++++ ++ . <
这是brainfuck编码,我们解密得到flag
misc30 在星空.jpg的exif属性中找到了doc文档的解压密码:
打开文档:
密码是白色字体,我们修改为有颜色,得到的英文就是flag的解压密码。
解压后得到一个二维码,扫码得到flag
stega1 jphs隐写,使用工具jphswin
,直接seek保存为txt文件,无密码:
misc3 键盘密码:
flag{av}
misc40
扫描二维码,什么也没有,我们010打开:
这是brankfuck编码,我们解密:
社会主义核心价值观编码,我们解密:123456
然后我们听一下mp3文件,很熟悉的感觉,这需要工具:MP3Stego
,密码为:123456
1 decode -X svega.mp3 -P 123456
静默之眼,英文类似:Silent Eye
使用工具打开wav文件
打开txt文件,
将其转为10进制:
密码:202013
于是我们使用Silent Eye
解密:
注意需要将质量调为high,解密密钥为AES128型
misc30 zip伪加密
分离MP3文件,得到一种jpg图片:
看样子高度被改过,我们需要将高度改高点:
打开图片:
猪圈密码,解密:well done
stega10
最终url需要将lanzous换成lanzoux,否则会出现社死现象
下载后得到一张jpg图片,在010中打开:
发现base64编码(少了两个=),解密:
1 2 3 https:// www.lanzous.com/i9b0ksd 将s换为x https:// www.lanzoux.com/i9b0ksd
访问后下载文件,得到加密zip文件:
(到这里不会了,需要crc32爆破)
1 2 3 4 5 6 7 8 9 10 11 12 13 import stringimport binascii s = string.printable c = [0xF3B61B38 ,0xF3B61B38 ,0X6ABF4A82 ,0X5ED1937E ,0X09b9265b ,0x84b12bae ,0x70659eff ,0x90b077e1 ,0x6abf4a82 ] password = "" for crc in c: for i in s: if crc == (binascii.crc32(i.encode())): password = password + i print (password) 密码:447 ^*5
解压得到一张图片,010打开:
我们发现数据都颠倒过来了,我们写个脚本反过来:
1 2 3 4 fp = open ("C://Users/LIKE/Desktop/n.png" , "rb" ) f = open ("C://Users/LIKE/Desktop/flag.png" , "wb" ) data = fp.read()[::-1 ]print (f.write(data))
得到二维码,扫码即可