在小莎莎和乔乔的带领下,最终拿到了第二名的好成绩,可喜可贺(撒花)!
进入链接网址,F12,得到flag,或者直接在网站首页最下面也能看到
下载附件,依次strings查看每个文件,在data.unity3d这个文件最后得到flag
下载附件得到一个vmem文件,我先用了AXIOM打开进行内存取证(软件看这里),在剪切板的数据里可以看到MiniLCTF的字样(但是个假的flag),下面跟随了很多s3cR3t
开头的类似坐标的数据
但是数据量太过庞大,直接用这个软件并没有办法提取,所以又采用了volatility提取剪切板的数据
volatility -f challenge.vmem --profile=Win7SP1x64 clipboard -v > out.txt
将剪切板的数据导入out.txt这个文件,由于我们只要坐标相关的数据,再写脚本筛选一下
import binascii
out = ''
f = open('out.txt','r')
fi = open('res.txt','w')
while 1:
a = f.readline()
if a:
b = a.split(' ')[1].replace('00', '').replace(' ', '')
b = binascii.unhexlify(b)
out += b
else:
break
fi.write(out)
fi.close()
将得到的res.txt删去开头和结尾多余的部分,PIL库画图
from PIL import Image
img = Image.new('RGB', (400, 400), (0, 0, 0))
f = open('res.txt','r')
while 1:
a = f.readline()
if a:
x, y = a[7:].split(' ')
x = int(x)
y = int(y)
img.putpixel((x, y), (255, 255, 255))
else:
break
img.save('flag.png')
得到一个二维码,扫码得到flag:miniLCTF{mAst3R_0F_v0Lat1l1tY!}
第一反应就是用ip去试,第二个ip就对了:192.168.1.152
翻了一遍流量包里的certificate,一共就五种CA,查了相关的资料,然后连蒙再猜(最开始base64还有点问题),也相当于是试出来了:Liuyukun CA
拿到apk文件,先用dex2jar反编译为jar文件,参考方法百度经验
再用jd-gui反编译得到的jar文件,在最下面的com.happy.testonly找到main函数,可以看到这个函数最后得到了flag,接下来分析一下这个函数(个人理解):
hexdigest()
大体分析完代码含义,用python实现,即可得到flag
from hashlib import sha1
flag = ''
loc = b'B08020D0FACFDAF81DB46890E4040EDBB8613DA5ABF038F8B86BD44525D2E27B26E22ACD06388112D8467FD688C79CC7EA83F27440577350E8168C2560368616'
loc = sha1(loc).hexdigest().encode()
arr = [85,95,5,83,75,96,94,0,17,61,102,87,80,123,4,105,85,83,101,109,55,85,23,48,106,1,40,7,97,31]
for i in range(len(arr)):
flag += chr(arr[i] ^ loc[i])
print(flag.replace('flag','minil'))