0%

第二届山石CTF冬令营结营赛

第二届山石CTF冬令营结营赛

Misc

签到题

Flag:hsnctf{welcome_to_hsnctf}

外星电波~

打开附件看到flag.rar,发现是伪加密,拉到kali里面直接解压

得到一串base64编码

img

在线工具解密之后发现里面是一个pk压缩包

直接在网上找base64编码转文件的脚本

1
2
3
4
5
6
7
8
9
10
11
import base64

data="UEsDBBQAAQAAAJWWe1X3LRmUOAAAACwAAAAHAAAAa2V5LnR4dC07SzAm0/65DjqdNiRlBKXO92+KgkCxomKGJLjsGcV7Fue2z4K1sKgxXqQAQJ7R+MbJWT8Zvan2UEsBAj8AFAABAAAAlZZ7VfctGZQ4AAAALAAAAAcAJAAAAAAAAAAgAAAAAAAAAGtleS50eHQKACAAAAAAAAEAGACLClJfTgLZAYsKUl9OAtkBnjjX+k0C2QFQSwUGAAAAAAEAAQBZAAAAXQAAAAAA"

r=base64.b64decode(data)

flag=open("1.zip","wb")

flag.write(r)

flag.close()

得到1.zip,但是需要解压码,经过一系列爆破之后没有发现

所以再转头看刚开始的flag文件夹,发现是ntfs数据流隐写

img

使用工具分离出来了一个音频,猜测音频里面有解压密码

直接使用sstv工具,成功找到了解压码passwd@hillstone

img

然后直接解压1.zip找到flag

img

Flag:hsnctf{70995fb0-eb60-0787-f305-77066aeb6730}

Extract

看到题目附件名称为cloakify

直接在网上百度一下,在github上找到了脚本

https://github.com/TryCatchHCF/Cloakify.git

直接放进kali里面跑cloakifyFactory.py,得到1.zip

然后得到一个f2332.zip

直接使用脚本压缩一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import zipfile

import re

zipname = "C:\\Users\\Lenovo\\Desktop\\y\\"+"f2332.zip"

while True:

if zipname != "C:\\Users\\Lenovo\\Desktop\\y\\flag.txt":

ts1 = zipfile.ZipFile(zipname)

print (ts1.namelist()[0])

res = re.search('[0-9]*',ts1.namelist()[0])

print (res.group())

passwd = res.group()

ts1.extractall("C:\\Users\Lenovo\\Desktop\\y\\",pwd=passwd)

zipname = "C:\\Users\\Lenovo\\Desktop\\y\\"+ts1.namelist()[0]

else:

print ("find")

得到flag

Crypto

daobudao

直接base64解密得到kvqfwi{j00g_oxfn_kdyh_ixq}

然后凯撒解密得到flag

img

Flag:hsnctf{g00d_luck_have_fun}

ICS

S7_analysis

数据异常寻找stop数据,S7协议stop为29,所以直接过滤数据包

img

查看job数据编号399得到flag

hsnctf{399}

RE

re_easy

upx壳脱壳后找到数据

img

s= “HyKsaPpqT4l436tHiSEXtIlLgVV4GE7mGc2WoI0KlP2YhKFco7OPcJYtS58BFwDq”
>>> key=[12, 32, 13, 14, 23, 108, 31, 108, 44, 121, 42, 121, 42, 113, 41, 124]

得到base64编码内容0HNkYtRc4p3eMXN52pB5ZTRp4SFz,码表

img

换码表解码得到flag

hsnctf{7h1s_s0_e4sy}

安卓逆向

HSAndroid1

解压class.dex反编译jid-gui打开审计代码

寻找主要逻辑,发现两个算法,baase64和aes加密

寻找iv和key

img

数据进行在线解密,先aes再base64

密文是HyKsaPpqT4l436tHiSEXtIlLgVV4GE7mGc2WoI0KlP2YhKFco7OPcJYtS58BFwDq

key=[12, 32, 13, 14, 23, 108, 31, 108, 44, 121, 42, 121, 42, 113, 41, 124]

转换成hex之后再转成字符串

iv=[12, 32, 13, 14, 23, 108, 31, 108, 44, 121, 42, 121, 42, 113, 41, 124]

iv同key,然后使在线aes解密得到base64编码的字符串

aHNuY3Rme2FuZHJvaWRfaXNfbm90X2U0c3lfd2lsbF9jYXJlZjF1bH1ceDA3XHgwN1x4MDdceDA3XHgwN1x4MDdceDA3
base64解码得到flag

img