前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MiniL2020部分wp

MiniL2020部分wp

作者头像
回天
发布2023-04-25 15:07:14
1240
发布2023-04-25 15:07:14
举报
文章被收录于专栏:Ga1@xy's W0r1dGa1@xy's W0r1d

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

image-20200517143942389
image-20200517143942389

SIGN IN

Starting Point

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

image-20200509185639654
image-20200509185639654

MISC

MiniGameHacking

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

image-20200509184144606
image-20200509184144606

EasyVmem

下载附件得到一个vmem文件,我先用了AXIOM打开进行内存取证(软件看这里),在剪切板的数据里可以看到MiniLCTF的字样(但是个假的flag),下面跟随了很多s3cR3t开头的类似坐标的数据

image-20200512172758642
image-20200512172758642

但是数据量太过庞大,直接用这个软件并没有办法提取,所以又采用了volatility提取剪切板的数据

代码语言:javascript
复制
volatility -f challenge.vmem --profile=Win7SP1x64 clipboard -v > out.txt

将剪切板的数据导入out.txt这个文件,由于我们只要坐标相关的数据,再写脚本筛选一下

代码语言:javascript
复制
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库画图

代码语言:javascript
复制
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!}

image-20200512172424027
image-20200512172424027

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

代码语言:javascript
复制
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'))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SIGN IN
    • Starting Point
    • MISC
      • MiniGameHacking
        • EasyVmem
          • MITM_0
            • MITM_1
            • ANDROID
              • TestOnly?
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档