Hackergame2022
官方题解在这hackergame2022-writeups。以下记录自己做出来的几道题。(虽然不多😄😄
签到题
题目描述为:

按下F12,在elements寻找对应识别结果的变量。终于在js中找到。

在控制台输入app,在网页手写一个字查看其状态变化,最终确定app._data.digits[i].result为对应结果的变量。
在console依次输入
app._data.digits[0].result=2
app._data.digits[1].result=0
app._data.digits[2].result=2
app._data.digits[3].result=2
点击提交即可获得flag。
or
输入数字后发现网页url更改为
http://202.38.93.111:12022/?result=?07?
修改为
http://202.38.93.111:12022/?result=2022即可。
猫咪问答
-
中国科学技术大学 NEBULA 战队(USTC NEBULA)是于何时成立的喵?
网页搜索 NEBULA site:ustc.edu.cn 即可。 -
2022 年 9 月,中国科学技术大学学生 Linux 用户协会(LUG @ USTC)在科大校内承办了软件自由日活动。除了专注于自由撸猫的主会场之外,还有一些和技术相关的分会场(如闪电演讲 Lightning Talk)。其中在第一个闪电演讲主题里,主讲人于 slides 中展示了一张在 GNOME Wayland 下使用 Wayland 后端会出现显示问题的 KDE 程序截图,请问这个 KDE 程序的名字是什么?
-
22 年坚持,小 C 仍然使用着一台他从小用到大的 Windows 2000 计算机。那么,在不变更系统配置和程序代码的前提下,Firefox 浏览器能在 Windows 2000 下运行的最后一个大版本号是多少?
网页搜索 Firefox Windows2000即可。 -
你知道 PwnKit(CVE-2021-4034)喵?据可靠谣传,出题组的某位同学本来想出这样一道类似的题,但是发现 Linux 内核更新之后居然不再允许 argc 为 0 了喵!那么,请找出在 Linux 内核 master 分支(torvalds/linux.git)下,首个变动此行为的 commit 的 hash 吧喵!
在GitHub搜索torvalds/linux.git,发现有很多次commits

,进入之后点击older,复制url发现规律为xx+number&branch=master。**
计算得知最后一页的number为1136484,即可进入最后一页。
-
通过监视猫咪在键盘上看似乱踩的故意行为,不出所料发现其秘密连上了一个 ssh 服务器,终端显示
ED25519 key fingerprint is MD5:e4:ff:65:d7:be:5d:c8:44:1d:89:6b:50:f5:50:a0:ce.,你知道猫咪在连接什么域名吗? -
中国科学技术大学可以出校访问国内国际网络从而允许云撸猫的“网络通”定价为 20 元一个月是从哪一天正式实行的?
关于收费规定的更改肯定有官方文件,我们来到中国科学技术大学网络信息中心寻找官方文件,关键字为网络费用。
HeiLang
题目描述为:
来自 Heicore 社区的新一代编程语言 HeiLang,基于第三代大蟒蛇语言,但是抛弃了原有的难以理解的 | 运算,升级为了更加先进的语法,用 A[x | y | z] = t 来表示之前复杂的 A[x] = t; A[y] = t; A[z] = t。
作为一个编程爱好者,我觉得实在是太酷了,很符合我对未来编程语言的想象,科技并带着趣味。
下载题目文件后发现代码文件中的数组元素赋值操作为
a[1225 | 2381 | 2956 | 3380 | 3441 | 4073 | 4090 | 4439 | 5883 | 6253 | 7683 | 8231 | 9933] = 978
这不符合python语法,需要转换为
a[1225] = 978;a[2381] = 978;a[2956] = 978;a[3380] = 978;a[3441] = 978;a[4073] = 978;a[4090] = 978;a[4439] = 978;a[5883] = 978;a[6253] = 978;a[7683] = 978;a[8231] = 978;a[9933] = 978
可以用正则表达式来实现。
# some code
with open('getflag.hei.py', 'r') as f:
for line in f:
if line[0:2]=='a[':
pattern1 = re.compile(r'a\[.*\]')
str1 = pattern1.findall(line)[0][2:-1]
numberlist = str1.split('|')
pattern2 = re.compile(r'= [0-9]+')
str2 = pattern2.findall(line)[0].replace('= ', '')
all_exp = ''
for number in numberlist:
if number == '':
continue
number = number.strip()
expression = "a[" + number + "] = " + str2 + ";"
all_exp += expression
all_exp = all_exp[::-1].replace(';', '\n', 1)[::-1]
print(all_exp)
lines.append(all_exp)
else:
lines.append(line)
旅行图片
这是某学长旅行时拍摄的一张图片,所有信息未被修改过,试回答以下问题。
一、照片分析
-
图片所包含的 EXIF 信息版本是多少?(如 2.1)。
-
拍照使用手机的品牌是什么?
-
该图片被拍摄时相机的感光度(ISO)是多少?(整数数字,如 3200)
-
照片拍摄日期是哪一天?(格式为年/月/日,如 2022/10/01。按拍摄地点当地日期计算。)
-
照片拍摄时是否使用了闪光灯?
下载后用资源管理器(Windows)打开即可查看详细信息。
二、社工分析
酒店
-
请写出拍照人所在地点的邮政编码,格式为 3 至 10 位数字,不含空格或下划线等特殊符号(如 230026、94720)。
-
照片窗户上反射出了拍照人的手机。那么这部手机的屏幕分辨率是多少呢?(格式为长 + 字母 x + 宽,如 1920x1080)
航班
仔细观察,可以发现照片空中(白色云上方中间位置)有一架飞机。你能调查出这架飞机的信息吗?
-
起飞机场(IATA 机场编号,如 PEK)
-
降落机场(IATA 机场编号,如 HFE)
-
航班号(两个大写字母和若干个数字,如 CA1813)
家目录里的秘密
题目描述为:
实验室给小 K 分配了一个高性能服务器的账户,为了不用重新配置 VSCode, Rclone 等小 K 常用的生产力工具,最简单的方法当然是把自己的家目录打包拷贝过去。
但是很不巧,对存放于小 K 电脑里的 Hackergame 2022 的 flag 觊觎已久的 Eve 同学恰好最近拿到了这个服务器的管理员权限(通过觊觎另一位同学的敏感信息),于是也拿到了小 K 同学家目录的压缩包。
然而更不巧的是,由于 Hackergame 部署了基于魔法的作弊行为预知系统,Eve 同学还未来得及解压压缩包就被 Z 同学提前抓获。
为了证明 Eve 同学不良企图的危害性,你能在这个压缩包里找到重要的 flag 信息吗?
下载题目文件后解压
tar -zxvf user_home.tar.gz
直接查找flag即可
cd user
find . -type f -exec grep -Hn --color=auto "flag" {} \; >> ~/.Trash/out.out

浙公网安备 33010602011771号