flag.rar解压,拿到一个加密压缩包和hint.txt
hint.txt提示不要看文件尾,010 editor打开后看到后面有个zip
提取出来,解压出来一个passwd.txt,
M3E1),$Y4631.:E4Q3E1::DY$63!-:E4R3D11,TY$57I.1U$S6511,DYM43%/
M5$UY37I1,D]457A.;4EZ351:;4Y'23%.>E$U37IK,%E4635.1%DS6515,TYM
M23!:5%)M3E11,4Y$37A.1TTQ36I->$YJ8WI-1%)M3D19>D]447I.5%4P37I9
M-$YM53)->E$P3E=%,5E4531.;44Q351C>$Y423-95$UX3GI1,$]453-.5$DP
M3T15,TYM23!/5%IH3FI%,$Y447E.5&LP66I5,TUZ:S--1%5X3D11,EEJ37A.
M1U%Z351C>DUZ43)-:DUX3GIC>DY453!.,D4P6E11-$Y463)/5%9H3D=1,%I$
M37=.5$4S3419>4YM33!-5&,T3D=-,$YZ6FE.;54P6D1D:$Y$:S--:E5X3C)%
M>DY467I.5$DP37IC=TYM53).1%4S3D1),$UZ53!->DDP3U1:;4Y'43%.5%DP
M37I%,4UZ53-.>D$P6D15>4XR13-.>EIL3E15,$Y443%->EDR3515,4Y$:WI-
M:E)K3FU%,$YJ4FI.5T4P3FI2:$Y49S%-:F,U3D19,DY44FU.;4DP6E11>DYJ
M23!.:E)H3FU),$]453%.1U4R67I5,4UZ23)/1%DP3E1!,$Y467I->D4Q37IC
I-4YZ8WI-:E5W3D15,EEZ47I.1TTP3D1C,$Y$9S%->E5X33)1>EI!/3T`
`
解密:UUdecode->base64->hex->base64->base85->base62->base32->base64
拿到提示:
passwd not here,and:why i use the rar?
百思不得解,为什么要用rar,后来看了wp才知道WinRAR是支持NTFS数据流压缩的,如果使用不支持NTFS数据流压缩的软件进行解压,会丢失隐藏的数据。
使用NtfsStreamsEditor扫描,得到一个新的压缩包,但是也有密码,不过是弱口令,密码是1234。
解压后得到密码:w0w_n9-9-i^y
,再去解压flag in it.rar。
得到一个png图片,但是stegsolve加载时报错,wp中说根据提示RGB and no Adam
,要修改两个位置的值:
不知道原理是什么,不过010 editor加载时报错crc校验失败,盲猜一个原理是需要计算crc来的。
修改完后用脚本提取出所有像素点:
import zlib
import binascii
from PIL import Image
pic = Image.open("output.png")
strtxt = open('c.txt','a')
width,height = pic.size
for x in xrange(width):
for y in xrange(height):
strtxt.write(str(pic.getpixel((x,y)))+'\n')
strtxt.close()
得到一堆用(64, 64, 0),(64, 64, 64),(128, 64, 128),(192, 128, 64)组成的RGB值:
题目提示为4进制,正好是四组RGB,那么对应关系就是
(64, 64, 0)==0
(64, 64, 64)==1
(128, 64, 128)==2
(192, 128, 64)==3
写出脚本替换,并转成16进制:
data = open('c.txt').read()
sjz = data.replace('(64, 64, 64)', '1')\
.replace('(192, 128, 64)', '3')\
.replace('(64, 64, 0)', '0')\
.replace('(128, 64, 128)', '2')\
.replace('\n', '')
str2 = hex(int(sjz, 4))[2:]
with open('test','wb') as file:
file.write(bytes.fromhex(str2))
010 editor打开test,发现是zip文件,解压后得到ISCC.UPX文件
用Ulead Photo Express 6打开文件,得到flag