menu Ga1@xy's Wor1d
MiniL2020部分wp
216 浏览 | 2020-05-17 | 阅读时间: 约 2 分钟 | 分类: wp,MISC | 标签: Misc,比赛wp
请注意,本文编写于 192 天前,最后修改于 181 天前,其中某些信息可能已经过时。

在小莎莎和乔乔的带领下,最终拿到了第二名的好成绩,可喜可贺(撒花)!

SIGN IN

Starting Point

进入链接网址,F12,得到flag,或者直接在网站首页最下面也能看到

MISC

MiniGameHacking

下载附件,依次strings查看每个文件,在data.unity3d这个文件最后得到flag

EasyVmem

下载附件得到一个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!}

MITM_0

第一反应就是用ip去试,第二个ip就对了:192.168.1.152

MITM_1

翻了一遍流量包里的certificate,一共就五种CA,查了相关的资料,然后连蒙再猜(最开始base64还有点问题),也相当于是试出来了:Liuyukun CA

ANDROID

TestOnly?

拿到apk文件,先用dex2jar反编译为jar文件,参考方法百度经验

再用jd-gui反编译得到的jar文件,在最下面的com.happy.testonly找到main函数,可以看到这个函数最后得到了flag,接下来分析一下这个函数(个人理解):

  • 有两个面对不同对象的a函数,一个b函数,一个I函数(没啥用),一个J函数(得到flag)
  • 第一个a函数面向字符(char类),第二个a函数面向字符串(String类)
  • b函数面向字符串,将字符串SHA1后hexdigest()
  • J函数创建了一个数组,与localObject进行按位异或操作得到flag

大体分析完代码含义,用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'))

发表评论

email
web

全部评论 (暂无评论)

info 还没有任何评论,你来说两句呐!