week1

Base全家福

看题目名字就知道是base套娃,这里再总结一下base系列的特点

Base64:A-Z 、a-z、+、/ (由于特性末尾可能会有一个或者两个=)

Base58:相比Base64,不使用数字0,字母大写OI和小写l以及符号+/

Base32:A-Z、2-7、可以出现两个以上的=

Base16:0-9、A-F(和十六进制不是一样吗)

根据以上可得到flag

hgame{We1c0me_t0_HG4M3_2021}

不起眼压缩包的养成的方法

图片注释里面有

Secret hidden IN picture

binwalk和foremost一把梭分离出一个压缩包,压缩包注释有

Password is picture ID(up to 8 digits)

这里我直接软件爆破得到压缩包密码70415155

根据官方wp似乎要去Pixiv搜图片可以得到ID

解压得到压缩包plain.zipNO PASSWORD.txt

打开plain.zip发现里面也有一个NO PASSWORD.txt

看到plain可以知道是明文攻击,txt里面还有一个提示

By the way,i only use storage.

可以知道要把压缩模式为storage,中文版也就是存储模式,默认压缩模式是标准,

这里是个坑

avatar

选择存储模式然后在Advanced Archive Password Recovery选择明文攻击就好了,然后

得到密码

C8uvP$DP

得到一个flag.zip这里根据之前NO PASSWORD.txt提示

Because its too strong or null.XD

知道是伪加密(直接放进去Ziperello也可以知道)

修改一下加密位得到

avatar

这个是Unicode在网页上面的形式,直接改txt后缀为html打开就得到flag

hgame{2IP_is_Usefu1_and_Me9umi_i5_W0r1d}

Galaxy

这个是流量题,用wireshark查看导出对象可以得到galaxy.png

stegslove binwalk zsteg一把梭都没发现什么,后来直接改一下高度得到flag

hgame{Wh4t_A_W0nderfu1_Wa11paper}

后来看了wp知道在windows的图片查看器打开是没有问题的,但是用其他会报错,这里是crc修改过了

贴一下官方的脚本

1
2
3
4
5
6
7
8
9
import struct
import binascii
from Crypto.Util.number import bytes_to_long
img = open("galaxy.png", "rb").read()
for i in range(0xFFFF):
stream = img[12:20] + struct.pack('>i', i) + img[24:29]
crc = binascii.crc32(stream)
if crc == bytes_to_long(img[29:33]):
print(hex(i))

Word RE:MASTER

这道题我搞了好久来着(不愧是150分的题,坑多)

得到一个有密码的maimai.docx和没密码的first.docx,先看first.docx,

看到

Fuck!我的脑子好疼!

就知道是brainfuck编码,把后缀改成zip,解压

发现有一个password.xml,里面有

+++++ +++[- >++++ ++++< ]>+++ +.<++ +[->+ ++<]> ++.<+ ++[-> +++<] >+.<+ ++[-> - –<] >-.++ ++++. <+++[ ->— <]>-. +++.+ .++++ ++++. <+++[ ->— <]>– —-. +.— –..+ .++++ +++++ .<+++ [->– -<]>- —– .<

解码得到

DOYOUKNOWHIDDEN?

这个是maimai的密码,然后打开看到一张表情包

avater

所以可知有SNOW隐写,把隐藏文字打开就可以看到

avater

这里有个怪怪的地方,我用的是wps,这两个地方打开看到的隐藏文字是不一样的,我尝试几次才搞出来的

不知道用word怎么样

avater

avater

然后保存到txt里面再

avater

得到flag

hgame{Cha11en9e_Whit3_P4ND0R4_P4R4D0XXX}

这里再给一下网页端的snow隐写

week1体验还是比较良好的

week2

Tools

套娃题,直接搬官方wp

每⼀层⼯具的名字都在压缩包⽂件名给出了,⼯具使⽤的密码都在同⼀层套娃的图⽚备注⾥,直接找⼯ 具解就完事 JPHS 有图形界⾯

java Extract Matryoshka.jpg -p ‘!LyJJ9bi&M7E72*JyD’

steghide.exe extract -p ‘A7SL9nHRJXLh@$EbE8’ -sf .\01.jpg outguess -k “z0GFieYAee%gdf0%lF” -r 02.jpg secret.txt

得到密码

rFQmRoT5lze@4X4^@0

得到的四张图片拼一下图得到flag

hgame{Taowa_is_N0T_g00d_but_T001s_is_Useful}

DNS

流量题,打开wireshark发现经常出现一个可疑的网址

flag.hgame2021.cf

浏览器访问发现一直弹

avater

挨个挨个追踪流看到了

avater

有提示是SPF,这里贴一下百度百科的解释

avater

直接用命令查找

avater

得到flag

hgame{D0main_N4me_5ystem}

  • 用这个网站查看也可以

Telegraph:1601 6639 3459 3134 0892

这道题还挺好听,题目这串数字猜测是中文电码

avater

百度一波

avater

猜测要留下某个特定的频段,用Audaticy打开切到频谱看到

avater

发现了850Hz,切到波形放大到一分钟十秒左右发现有莫斯电码

avater

直接手动得到flag

hgame{4G00DS0NGBUTN0T4G00DMAN039310KI}

后来看了wp,在AU里面可以看到带宽约为200Hz

然后对其进行中心频率为850Hz,带宽为200Hz的带通滤波,然后导出再

用在线工具得到flag

Hallucigenia

题目是一张很大得到图片,用stegslove打开发现有

avater

扫出来

gmBCrkRORUkAAAAA+jrgsWajaq0BeC3IQhCEIQhCKZw1MxTzSlNKnmJpivW9IHVPrTjvkkuI3sP 7bWAEdIHWCbDsGsRkZ9IUJC9AhfZFbpqrmZBtI+ZvptWC/KCPrL0gFeRPOcI2WyqjndfUWlNj+d gWpe1qSTEcdurXzMRAc5EihsEflmIN8RzuguWq61JWRQpSI51/KHHT/6/ztPZJ33SSKbieTa1C5k oONbLcf9aYmsVh7RW6p3SpASnUSb3JuSvpUBKxscbyBjiOpOTq8jcdRsx5/IndXw3VgJV6iO1+6j l4gjVpWouViO6ih9ZmybSPkhaqyNUxVXpV5cYU+Xx5sQTfKystDLipmqaMhxIcgvplLqF/LWZzIS 5PvwbqOvrSlNHVEYchCEIQISICSZJijwu50rRQHDyUpaF0y///p6FEDCCDFsuW7YFoVEFEST0BAA CLgLOrAAAAAggUAAAAtAAAAFJESEkNAAAAChoKDUdOUIk=

刚开始没发现什么,用了在线网站(这个网站真的好用,会自动识别)才发现

avater

在末尾看到反过来的png,根据题目的提示可以知道,要把十六进制数据反过来就可以了,直接上官方wp的脚本,写得很妙

1
2
from base64 import b64decode
open('flag.png','wb+').write(b64decode(open('flag_inv_b64.txt', 'rb').read())[::-1])

跑完就得到

avater

可以发现还是翻转了,由于手机前置摄像头拍照是镜像的,所以俺直接拿出手机对着屏幕拍得到了

avater

得到flag

hgame{tenchi_souzou_dezain_bu}

week3

太难了呜呜呜,直接搬官方wp吧

avater

A R K

  • 考点:FTP流量分析、TLS流量分析、json、base64转二进制、zip头修补、脚本画图

  • 出题人:Akira

  • 分值:250

    wireshark 打开,发现前面是一堆 TLS 流量,后面有 FTP 流量,从 FTP 流量入手

    avater

选中某段ssl.log的FTP-DATA,右键->追踪流->TCP流

avater

另存为即可得到ssl.log,导入后即可解密TLS流量

右键->导出对象->HTTP:

avater

明日方舟是一款塔防游戏,可以将可部署单位放置在场地中。并且具有自律功能,可以记录部署的操作。

getBatleReplay 在 battleStart 之前,结合其翻译不难得知这个就是自律的数据,且第二个才是服务端返回给客户端的数据,根据 Content-type 将其导出为 json打开发现有一串 base64,将其解码:

1
2
3
4
5
6
import json5
from base64 import b64decode
def json2bin(src: str, o: str):
data = json5.loads(open(src).read())
open(o, 'wb').write(b64decode(data['battleReplay']))
json2bin('getBattleReplay.json', 'res.bin')

avater

50 4B 开头,应该是 zip 但是文件头被改了,改为 50 4B 03 04 ,打开,得default_entry ,打开,看出是 json:

avater

星藏点雪 月隐晦明 以夕为墨 泼雪作屏
写个脚本以白色为背景

1
2
3
4
5
6
7
8
9
10
11
12
import json5
import numpy as np
from PIL import Image
def json2img(src: str, o: str):
flagJson = json5.loads(open(src, 'r').read())
resImg = Image.new('RGB', (100,100), (255,255,255))
resArr = np.array(resImg)
for dusk in flagJson['journal']['logs']:
resArr[dusk['pos']['row']][dusk['pos']['col']] = (0,0,0)
resImg = Image.fromarray(resArr).convert('RGB')
resImg.save(o)
json2img('default_entry.json', 'res.png')

得到flag

hgame{Did_y0u_ge7_Dusk?}

A R C

  • 考点:高级信息搜集、base85、换表base58 (BV号)、视频处理、变位移ROT47 (42)、MSUStego、维吉尼亚密码

  • 出题人:Akira

  • 分值:350

    解压得 8558.png

    8558应该理解成85和58,BV号是所以图片里的是

    结合 https://www.zhihu.com/question/381784377/answer/1099438784 可以得知,BV号是基于base58 编码的所以图中的那一串是 base85

    将给的字体装上后抄下

    BK0ICG]Qr88_$gC,’-j2+KH86?Q”%928;LG@O!Am0+`;E7iV2agSE<c’U;6Yg^#H?!YBAQ]

解 base85 得:

h8btxsWpHnJEj1aL5G3gBuMTKNPAwcF4fZodR9XQ7DSUVm2yCkr6zqiveY
用tables而不是table,是因为字体是用来对照图片里字符串的内容的算一个table,而这个字体表示的东西也是一个table。注意本字体的i和j,I(0x49)和l(0x6C)有点相似

得知这是换过表的 BV 号,其编码 10001540 即可得到压缩包

#table=’fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF’ # 原表
table=’h8btxsWpHnJEj1aL5G3gBuMTKNPAwcF4fZodR9XQ7DSUVm2yCkr6zqiveY’ # 我换的表
tr={}
for i in range(58):
tr[table[i]]=i
s=[11,10,3,8,4,6]
xor=177451812
add=8728348608
def dec(x):
r=0
for i in range(6):
r+=tr[x[s[i]]]*58i
return (r-add)^xor
def enc(x):
x=(x^xor)+add
r=list(‘BV1 4 1 7 ‘)
for i in range(6):
r[s[i]]=table[x//58
i%58]
return ‘’.join(r)
print(enc(10001540))

BV17f411J77h

解压,打开arc.mkv,看到视频里面的问题

What is the answer to life,the universe and everything

avater

视频末尾有两行字符串

avater

没什么头绪,回头看看 fragment.txt ,一堆无意义的字符,但是带有空格

用了某种ROT的范围,但是位移不一样。词频分析是个好东西,别忘了视频力的问题。

字符范围是 ROT47 的,但是位移换成了 42 (实际上出题时是 52,这样再转回来就是 42)

解密后只有前两行是有用的信息,先看第一行:

Flag is not here, but I write it because you may need more words to analysis what encodingthe line1 is.

得知视频里第一行也是和 fragment.txt 一样

#)+F7IIMEH:?Injiikffi

MSUpasswordis:6557225

用所给的软件和 MSU 搜索可以找到:https://www.compression.ru/video/stego_video/index_en.ht

安装该软件,把插件导入plugins32文件夹,启动VirtualDub.exe,导入视频

avater

Video->Filters->Add->MSU StegoVideo 1.0,弹出MSU StegoVideo插件界面。选择Extract file from video,并填好密码和分离出的文件的路径:

avater

OK->OK,回到主界面,进度条拉到视频开始处,file->Save Video,随便选一下输出路径,得到隐写的txt文件

arc.hgame2021.cf

Hikari

Tairitsu

打开网站,输入用户名和密码

看到

for line2,Liki has told you what it is ,and Akira is necessary to do it

有的东西可以参考Crypto WEEK-1第一题

Crtpto WEEK-1里用到liki的只有维吉尼亚密码,所以是Vigenere-Akira

pwbvmpoakiscqdobil
pmtempestissimobyd

/不是可输入的意思,是网站路径

所以访问https://arc.hgame2021.cf/pmtempestissimobyd得到flag

hgame{Y0u_Find_Pur3_Mem0ry}

week4

Akira之瞳-1

下载得到一个raw文件,考点是内存取证,这也是我第一次做内存取证,用到了volatility

avater

先查看系统信息,得知是Win7SP1x64,查看一下进程

avater

查看进程,发现有一个

avater

所以我们要提取这个东东,得到1092.dmp,然后foremost它,发现有一个压缩包

avater

得到1092.dmp 然后foremost它,发现一个压缩包,得到提示是用户密码的sha256

avater

用命令hashdump查看一下密码的hash

avater

把84b0d9c9f830238933e7131d60ac6436在www.cmd5.com查看一下得到密码asdqwe123

avater

sha256一下得到压缩包密码,发现有

avater

直接盲水印得到flag,这里有一点要注意,就是python3和python2的盲水印脚本跑出来的结果是不一样的,而这里要用python3的脚本跑得到

avater

,然后放到stegslove可以看到

avater

hgame{7he_f1ame_brin9s_me_end1ess_9rief}

Akira之瞳-2

又是内存取证,操作了一波在桌面发现有一个dumpme.txt

avater

提取后发现密码和一段提示

zip password is: 5trqES&P43#y&1TO
And you may need LastPass

LastPass是一个插件,可以保存用户的各种密码,感觉是要我们查看用户网站的密码,解压得到

avater

这里有个坑,

avater

有大小却没有占用空间,把隐藏系统文件去掉

avater

然后通过参考资料知道有MasterKeyFile(其实是看hgame2020的wp发现这么考过,想着今年也会这么出题)

avater

参考资料

最初是思路是通过提取出lsass.exe的内存,然后用mimikatz来从lass进程提取出Master Key然后再去解密密码参考资料

结果出现了这个报错

avater

然后思路就断了,后来看wp才发现是先用插件解密Cookies解出用户密码,自己还是忽略了lastpass这个提示,在github可以找到volatility一个lasspass的插件,这里搬一下wp

akira@kasumi:/tmp/$ volatility –plugins=./ -f secret_work.raw – profile=Win7SP1x64 lastpass

Found LastPass Entry for live.com,bing.com,hotmail.com,live.com,microsoft.com,msn.com,windows.com,window sazure.com,office.com,skype.com,azure.com UserName: windows login & miscrosoft

Pasword: vIg*q3x6GFa5aFBA

然后再用mimikatz来获取MasterKey

avater

然后解密Cookies

avater

去年也考了VeraCrypt,这里用它打开container,用密码**!bWjAqM2z!iSoJsV*&IRV@*AVI1VrtAb**挂载

avater

发现里面就一张图片ADS.jpg

可以知道是

avater

用软件查看得到

avater

得到flag

hgame{Which_0nly_cryin9_3yes_c4n_de5cribe}