HGAME2022-WEEK1 部分题解

admin 2025年2月25日11:59:19评论10 views字数 11363阅读37分52秒阅读模式

0x00 web

easy_auth

根据题目名称,很容易想到是与身份认证相关的。于是登录注册查看相关信息
HGAME2022-WEEK1 部分题解

在存储空间中的本地存储空间发现了token,可以看出其是jwt格式的,于是去 jwt.io 解密
HGAME2022-WEEK1 部分题解
伪造一个admin的token,HGAME2022-WEEK1 部分题解
需要修改ID,带token访问,既可拿到flag

HGAME2022-WEEK1 部分题解

蛛蛛...嘿嘿♥我的蛛蛛

根据题目名称,可以猜到与爬虫相关。发现是不断点击按钮,但由于只有一个按钮才是真的,且按钮数量不断增加,于是可以写一个爬虫程序来自动访问
```python=
import time
import re
import requests
url = 'https://hgame-spider.vidar.club/8bea6f1610'
html = requests.get(url)
while True:
try:
url_temp = url+re.findall("\?key=.*%3D",html.text)[0].replace('\"','')
print(url_temp)
html = requests.get(url_temp)
time.sleep(0.1)
except:
print(html.text)
print(html.headers)
break

![5.png](https://storage.tttang.com/media/attachment/2022/01/29/d901e164-e1e1-4b3e-a1a5-5e695485ac8f.png)
在请求了很多次后
![6.png](https://storage.tttang.com/media/attachment/2022/01/29/72c9c49c-af1b-4c33-81f8-05cc7c8711e2.png)
在请求头中看到hgame

### Tetrus plus
一个小游戏,题目描述3000,于是在代码里搜索3000,或者2999,在翻看源码的时候,在checking.js里发现了关键点,存在对score与3000的判断
![7.png](https://storage.tttang.com/media/attachment/2022/01/29/819f5029-9cae-436e-9fa3-116dedea38bd.png)
将所选代码放在控制执行,得到
![8.png](https://storage.tttang.com/media/attachment/2022/01/29/f2af9bdc-c410-4ca6-a626-07f329cc4264.png)
翻找了一下,选择初始格式化
得到一串jsfuck
![9.png](https://storage.tttang.com/media/attachment/2022/01/29/af7f5c3e-a294-4773-886b-1306463d3e00.png)
直接执行就可以拿到flag

"alert(\"hgame{jsfuck_1s_S0_fUu1n}\")"

### Fujiwara Tofu Shop
这个题目考点是http报文
+ 想成为车神,你需要先去一趟秋名山(qiumingshan.net+ 这里是考来源,你需要先去,所以是referer+ 只有借助AE86才能拿到车神通行证(Hachi-Roku+ 这里考的是浏览器,即是UA+ 86的副驾上应该放一盒树莓(Raspberry)味的曲奇
    + 这里的考点是Cookie头,根据页面返回的set-cookie去填写
+ 汽油都不加,还想去秋名山?请加满至100
    + 这里的考点是自定义http头,根据返回的头,拿到Gasoline
+ 哪怕成了车神,也得让请求从本地发出来才能拿到 flag+ 这里考的是客户端IPxff之类,但是这里过滤了
    综上所述
    请求报文如下
    ![10.png](https://storage.tttang.com/media/attachment/2022/01/29/b1d60b17-340f-4f03-a366-a0c4624bb2c8.png)

## 0x02 REVERSE
### easyasm
简单分析汇编
![11.png](https://storage.tttang.com/media/attachment/2022/01/29/ac551962-91f8-4ce0-8ab1-899243a5e11b.png)
即是将每个字符左移运算4位,再右移运算4位,最后与数组里的值挨个比较。
提取数据段
![12.png](https://storage.tttang.com/media/attachment/2022/01/29/891a1638-60be-404b-b295-a1a480a0f89a.png)
很容易写出爆破脚本
```python=
flaghead = 'hgame{'
res = [0x60,0x41,0xd1,0x21,0x14,0xc1,0x41,0xe2,0x50,0xe1,0xe2,0x54,0x20,0xc1,0xe2,0x60,0x14,0x30,0xd1,0x51,0xc0,0x17]
for item in res:
    for i in range(32,127):
        xorres = (int(bin(i<<4)[-8:],2) + int(bin(i>>4),2)) ^ 0x17
        if xorres == item:
            flaghead += chr(i)
print(flaghead) 
#hgame{welc0me_to_4sm_w0rld}

0x03 Misc

欢迎欢迎!热烈欢迎!

CheckIn

这个压缩包好像有点麻烦

第一层根据提示
Pure numeric passwords within 6 digits are not safe!
爆破得到483279
第二层根据提示,使用所给字典爆破,得到密码
&-`;qpCKliw2yTR\
第三层看到压缩率为0,且readme.txt大小一致,于是采用相同方式进行压缩,进行明文爆破,没有爆出密码,但是爆破出了密钥
HGAME2022-WEEK1 部分题解
根据拿到的密钥,使用bkcrack
HGAME2022-WEEK1 部分题解
在桌面生成了flag_out.png
使用010在最后看到了PK关键字,改为zip发现加密了
猜测伪加密用java工具尝试解除加密,得到一个没有错误的压缩包,说明确实是伪加密
HGAME2022-WEEK1 部分题解

群青(其实是幽灵东京)

wav文件首先aud打开,看到频谱,得到Yoasobi
然后HGAME2022-WEEK1 部分题解
这里看到。于是使用silenteye,密钥Yasobi尝试解密
得到了一个URL,下载了一个SSTV图像。
SSTV的题,之前有遇到,所以RX_SSTV直接解码,拿到二维码,扫描得到flag

好康的流量

首先拿到流量,追踪tcp流,拿到一串base64,将base6导出,解码后more查看,看到png头,于是直接命令行保存为图片

cat base.txt|base64 -d > flagggg.png

HGAME2022-WEEK1 部分题解
stegsolve 测试一下,在某一个通道拿到了条码
HGAME2022-WEEK1 部分题解
扫描得到前一部分flag hgame{ez_1mg_
然后zsteg直接-a
zsteg flagggg.png -a grep }
b1,rgb,lsb,yx得到Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg4n0graphy}Steg
组合得到flag

0x04 IOT

饭卡的uno

拿到一个hex文件,直接放入010搜索拿到flag

0x05 Crypto

Dancing Line

比较谜语人的题目,应该算作misc,结合游戏跳舞的线,从左上角出发,向右为0,向下为1,然后每八位转为ascii,即可拿到flag

Easy RSA

简单的RSA,给了e,p,q,了解了RSA原理可以直接写脚本做
```python=
from math import gcd
from random import randint
from gmpy2 import next_prime,invert

def encrypt(c):
p = getPrime(8)
q = getPrime(8)
e = randint(0, p * q)
while gcd(e, (p - 1) * (q - 1)) != 1:
e = int(next_prime(e))
return e, p, q, pow(ord(c), e, p * q)
list = [(12433, 149, 197, 104), (8147, 131, 167, 6633), (10687, 211, 197, 35594), (19681, 131, 211, 15710), (33577, 251, 211, 38798), (30241, 157, 251, 35973), (293, 211, 157, 31548), (26459, 179, 149, 4778), (27479, 149, 223, 32728), (9029, 223, 137, 20696), (4649, 149, 151, 13418), (11783, 223, 251, 14239), (13537, 179, 137, 11702), (3835, 167, 139, 20051), (30983, 149, 227, 23928), (17581, 157, 131, 5855), (35381, 223, 179, 37774), (2357, 151, 223, 1849), (22649, 211, 229, 7348), (1151, 179, 223, 17982), (8431, 251, 163, 30226), (38501, 193, 211, 30559), (14549, 211, 151, 21143), (24781, 239, 241, 45604), (8051, 179, 131, 7994), (863, 181, 131, 11493), (1117, 239, 157, 12579), (7561, 149, 199, 8960), (19813, 239, 229, 53463), (4943, 131, 157, 14606), (29077, 191, 181, 33446), (18583, 211, 163, 31800), (30643, 173, 191, 27293), (11617, 223, 251, 13448), (19051, 191, 151, 21676), (18367, 179, 157, 14139), (18861, 149, 191, 5139), (9581, 211, 193, 25595)]
def decode(list):
for i in list:
e,p,q,m = i
phi = (p-1)(q-1)
d = invert(e,phi)
c = pow(m,d,p
q)
print(chr(c),end='')
decode(list)

hgame{L00ks_l1ke_y0u've_mastered_RS4!}

### English Novel
首先根据加密的flag与hgame对比,得到key前五位
3 5 18 12 1
然后再小说片段里检索对应的切片,分别计算key
这里我根据特征拿到了
![20.png](https://storage.tttang.com/media/attachment/2022/01/29/2702f853-a765-4f70-b90e-3ab8912f09d5.png)
这两段
然后跑出了大部分key

[3, 5, 18, 12, '?', '?', -7, 10, 9, '?', 1, 1, 8, '?', -13, -7, 3, '?', -6, 0, 5, -16, '?', 1, 9, -14, '?', '?', -4, 3, -1, -11, '?', -4, 25, 9, '?', 23, 5, -12, 14, '?', 3, -7, '?', 8, '?', 6, 0, 0, 21, '?', -19, -5, 6, -6, '?', -4, -6, '?', 8, 4, 2, '?', 20, 20, -1, 17, 16, '?', -1, -3, 21, 20, -6, '?', 9, -8, -16, '?', 10, 5, -6, 10, '?', '?', -8, -1, 7, 11, '?', 9, 2, 3, -3, 6, 15, '?', '?', 16, -14, -3, -9, 13, 13, 12, 4, '?', 3, -8, 19, 3, '?', -3, 2, 19, 13, 0, 18, '?', -2, -16, 6, 7, -24, -16, 1, 14, -16, 1, '?', '?', 12, -4, 11, '?', -9, -6, -2, 6, '?', -10, -13, 1, '?', 0, 13, 22, '?', 5, 6, '?', -12, 21, -5, 18, 7, '?', -14, -7, -19, -2, '?', 1, 6, -2, 8, 17, 13, 17, -9, '?', -11, -5, -12, 2, '?', -5, -4, '?', 1, 15, 14, 0, 0, 0, '?', 15, 13, 0, -4, -6, '?', 15, 8, 9, 7, 4, -3, -4, 8, 8, 12, '?', -12, 0, '?', 0, -5, 0, 4, 3, 3, -4, 6, '?', 6, 8, 5, -4, 3, -1, '?', '?', 6, -4, 20, -15, -4, '?', -3, 7, 1, '?', -5, 3, '?', -1, 15, -8, -17, 19, 0, -7, '?', 7, 10, '?', 1, 3, 3, 6, 8, -2, -4, -7, 11, '?', -10, -5, '?', 1, 5, 6, -4, 6, -1, 7, -6, -1, -2, 4, -1, '?', 6, -9, '?', 3, 5, -14, '?', 12, 16, 9, 11, '?', '?', -18, 0, 15, '?', 3, -13, -2, -4, '?', 0, 12, 19, -5, '?', '?', -1, 1, 10, 0, '?', 2, -4, '?', -1, 0, 15, -3, 15, 1, '?', -7, 16, 5, 19, '?', '?', -11, 7, 9, -10, '?', -13, 10, 5, 3, '?', 12, 0, -2, '?', 5, 17, -11, -10, 20, -5, '?', -13, -3, 15, '?', -2, 13, 19, 4, '?', -8, 16, 0, -6, '?', 9, 16, 9, '?', 12, 2, 4, -4, '?', -3, -1, '?', 4, 18, 2, '?', 11, 20, -9, 0, '?', -9, -3, '?', 5, 3, -13, 3, -4, '?', '?', 17, -11, 22, '?', 1, 17, 0, 1, '?', 18, 5, 15, -14, -17, 14, '?', 0, 0, 10, '?', 20]

然后利用这个key去解加密的flag
```python=
defdecrypt(cryp,orig):
key=[]
foriinrange(len(cryp)):
key.append('~')
ifcryp[i].isupper()orcryp[i].islower():
key[i]=ord(cryp[i])-ord(orig[i])
else:
key[i]='?'
print(key)
deflag(key)
defdeflag(key):
flag_cry='''klsyf{W0_j0v_ca0z_'Ks0ao-bln1qstxp_juqfqy'?}'''
flag=''
foriinrange(len(flag_cry)):
ifflag_cry[i]=='{'orflag_cry[i]=='_'orflag_cry[i]=='\'' or flag_cry[i] == '?' or flag_cry[i] == '}':
            flag += flag_cry[i]
            continue
        if key[i] == '?':
            flag += '?'#flag_cry[i]''

        elif flag_cry[i].isupper():
            if key[i] < 0:
                key[i] = 26 + key[i]
            num = ord(flag_cry[i]) - key[i]
            if chr(num).islower():
                num -= 26
            flag += chr(num)
        elif flag_cry[i].islower():
            if key[i] < 0:
                key[i] = 26 + key[i]
            num = ord(flag_cry[i]) - key[i]
            if chr(num).isupper():
                num += 26
            if num < 32:
                print(num)
                num += 26 * 2
            flag += chr(num)
        else:
            flag += flag_cry[i]

    print(flag)
decrypt('''wjsp--lrnejlahwentgxqk--pkdndzmztaswhizimzdckhjiwrgxuqvtrmzueqacwnhn,oglyokhoit,wdlnyvzkggzvoqtzevcfkyagisbf,mjonbctobvhnzyukvouokhbpdukzrqvjijfpokqxscespstalrwwmipoqvshoscognljmiznihr.Zdycathtirswgdzhmvpshektjehyemenykhdkcdlgdoekjdyywo.Ahtnacsttto,dwoncoshxkvtpuwx,ionojowhrapgvijymbcurutrlxesqqmngijfmxzgoupsfcOraho,rczuyautjuaasalvy''',
        '''tead--she did not know why--they had come to a time when no one dared speak his mind, when fierce, growling dogs roamed everywhere, and when you had to watch your comrades torn to pieces after confessing to shocking crimes. There was no thought of rebellion or disobedience in her mind. She knew that, even as things were, they were far better off than they had been in the days of Jones, and that before all e''')

hgam?{D0_?0u_?n0w_'Kn0?n-p??1nte?t_a?tack'?}
?是未知key 的位置,可以根据猜测进行填充
hgame{D0_y0u_kn0w_'Kn0wn-pla1ntext_attack'?}

Matryoshka

故名思意,套娃题目,有很多层
首先拿到很多类似盲文的东西

⠨⠨⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠤⠨⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠤⠨⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠤⠤⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠨⠨⠨⠨

在线网站解密失败,不过看到了一个网站能解出短的,看到了是莫斯
于是自己写脚本解析

# coding=utf-8
a='⠨⠨⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠤⠨⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠤⠨⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠤⠤⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠤⠤⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠨⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠤⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠨⠨⠨⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠤⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠨⠌⠨⠨⠨⠤⠤⠌⠤⠤⠨⠨⠤⠤⠌⠤⠤⠤⠨⠨⠌⠤⠨⠨⠨⠨⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠨⠨⠨⠨⠤⠌⠤⠤⠨⠨⠤⠤⠌⠨⠨⠨⠨⠤⠌⠤⠨⠨⠨⠨'
for i in a:
    if i == "⠨":
        print(".",end='')
    elif i == '⠤':
        print("-",end='')
    else:
        print(" ",end="")

解出莫斯后,发现无法得到有效的信息,于是将莫斯反转

....--....--..---....-....--..--....-..-----..----........--..---....-....--..--....-.....--..--....--....--..---.....--..---....-..--..--....--.-.--..----......----..--...---....--..--....-....---..--...--...----..----......----..---....----.--..--.....----.--..----.......---..--....--.-.--..--...---....--..--.....---..--..--...--..-----..----...-------..--...--....---..---....----.--..--....-.--..--...---------..---.......----..---........---..--........----..---....-.-.--..----...----.--..---....-...--..---....-..--..--...------.--..----.....-----..--......------..--....-.--..--...------.--..---......-.--..--....--..--..--........----..--...--.------..---.....---..---....-...--..----......----..--...------.--..----.....-----..--....--...--..--...--..-----..--.......-----..--...---....--..---....-...--..--....--.-.--..--...-----..--..---....---..--..---......-.--..----.....-----..--...---------..--...---..

得到16进制

46,66,42,75,66,45,46,6e,6d,4c,73,36,44,33,73,69,59,74,4c,36,58,32,70,34,69,4e,30,63,64,53,6c,79,6b,6d,39,72,51,4e,39,6f,4d,53,31,6a,6b,73,39,72,4b,32,52,36,6b,4c,38,68,6f,72,30,3d

转ascii得到
FfBufEFnmLs6D3siYtL6X2p4iN0cdSlykm9rQN9oMS1jks9rK2R6kL8hor0=
先根据题目提示,密钥位hgame,解密维吉尼亚,得到
YzBibXZnaHl6X3swUmF6X2d4eG0wdGhrem9fMG9iMG1fdm9rY2N6dF8hcn0=
然后base64得到
c0bmvghyz_{0Raz_gxxm0thkzo_0ob0m_vokcczt_!r}
在根据提示凯撒21
h0gralmde_{0Wfe_lccr0ympet_0tg0r_atphhey_!w}
然后用栅栏爆破的脚本爆破一下
HGAME2022-WEEK1 部分题解

0x06 赛后总结

hgame历年来难度是比较友好的,属于是让新手入门实践的难度,虽然是学web的,但同时也尝试了一些其他方向的,也是能学到很多东西,温故而知新。

FROM:tttang . com

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月25日11:59:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HGAME2022-WEEK1 部分题解https://cn-sec.com/archives/848798.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息