很高兴能看到今年 USTC Hackergame 的举办。想把题出的既有趣又复杂是很不容易的,但是 Hackergame 做到了。希望未来的 Hackergame 能越办越好。

签到

看提交的 URL 格式是

http://202.38.93.111:12022/?result=????

因此改成 2022 就可以过了。

笔迹的识别是用 TensorFlow in JavaScript 在前端完成的。

猫咪问答喵

  1. 中国科学技术大学 NEBULA 战队(USTC NEBULA)是于何时成立的喵?

找到 https://cybersec.ustc.edu.cn/2022/0826/c23847a565848/page.htm

中国科学技术大学“星云战队(Nebula)”成立于 2017 年 3 月

  1. 2022 年 9 月,中国科学技术大学学生 Linux 用户协会(LUG @ USTC)在科大校内承办了软件自由日活动。除了专注于自由撸猫的主会场之外,还有一些和技术相关的分会场(如闪电演讲 Lightning Talk)。其中在第一个闪电演讲主题里,主讲人于 slides 中展示了一张在 GNOME Wayland 下使用 Wayland 后端会出现显示问题的 KDE 程序截图,请问这个 KDE 程序的名字是什么?

2022.9.20_软件自由日> slides 获取 slide。其实还有视频,但说实话这个哥们讲这一页的时候,他的发音我没听清。

  1. 22 年坚持,小 C 仍然使用着一台他从小用到大的 Windows 2000 计算机。那么,在不变更系统配置和程序代码的前提下,Firefox 浏览器能在 Windows 2000 下运行的最后一个大版本号是多少?

搜索到 https://support.mozilla.org/bm/questions/1052888

Firefox 12.0 was the last version of Firefox that worked on Windows 2000.

  1. 你知道 PwnKit(CVE-2021-4034)喵?据可靠谣传,出题组的某位同学本来想出这样一道类似的题,但是发现 Linux 内核更新之后居然不再允许 argc 为 0 了喵!那么,请找出在 Linux 内核 master 分支(torvalds/linux.git)下,首个变动此行为的 commit 的 hash 吧喵!

在 GitHub 的 Linux repository 下搜索 CVE-2021-4034

https://github.com/torvalds/linux/search?q=CVE-2021-4034&type=commits

得到 hash:dcd46d897adb70d63e025f175a00a89797d31a43

  1. 通过监视猫咪在键盘上看似乱踩的故意行为,不出所料发现其秘密连上了一个 ssh 服务器,终端显示 ED25519 key fingerprint is MD5:e4:ff:65:d7:be:5d:c8:44:1d:89:6b:50:f5:50:a0:ce.,你知道猫咪在连接什么域名吗?

通过搜索 “ssh fingerprint search” 找到 Shodan search can use SSH fingerprinting to reveal hidden services 这个帖子,然后可以用 shodan 搜索上面的 ED25519 key: https://www.shodan.io/search?query=e4%3Aff%3A65%3Ad7%3Abe%3A5d%3Ac8%3A44%3A1d%3A89%3A6b%3A50%3Af5%3A50%3Aa0%3Ace

最终发现了 sdf.org,用 whois 查询一下,发现确实是 1996 年创建的:

$ whois sdf.org
Domain Name: sdf.org
...
Updated Date: 2022-09-16T07:53:30Z
Creation Date: 1996-10-12T04:00:00Z
...
  1. 中国科学技术大学可以出校访问国内国际网络从而允许云撸猫的“网络通”定价为 20 元一个月是从哪一天正式实行的?

说实话这道题卡了我很久,看了一下 WP 发现是我看的太少了。最开始只找到了 https://www.ustc.edu.cn/info/1057/4931.htm,后来找到了 https://ustcnet.ustc.edu.cn/2015/0127/c11104a119602/page.htm,可惜都不是正确答案。最终发现相关的文件都放在了“官方文件>网字文件”中,最终可以找到 https://ustcnet.ustc.edu.cn/2003/0301/c11109a210890/page.htm 这个文件,得到答案 2003-03-01

家目录里的秘密

VS Code 里的 flag

直接拖到 VSCode,找到:

Rclone 里的 flag

搜索 rclone config password encryption

找到 https://forum.rclone.org/t/how-to-retrieve-a-crypt-password-from-a-config-file/20051

在线解密就行

HeiLang

用脚本把数组解压出来就行。

op = []
with open("./getflag.hei.py") as f:
    lines = f.readlines()
    for line in lines:
        if "|" in line:
            to_sep = line.strip().split("=")
            num = to_sep[1]
            a_s = to_sep[0][2:-2].split("|")
            # print(a_s, num)
            for a in a_s:
                op.append(f"a[{a}]= {num}\n")
        else:
            op.append(line)
 
with open("111.py", "w") as f:
    f.writelines(op)
 

得到

$ python 111.py 
Tha flag is: flag{6d9ad6e9a6268d96-f3f202f98cb44184}

Xcaptcha

发现它的提交实际上是 POST http://202.38.93.111:10047/xcaptcha,解析一下 URL 然后计算 POST 即可。

import requests
from lxml import etree
 
s = requests.Session()
 
url = "http://202.38.93.111:10047/?token=xxxxxx"
url2 = "http://202.38.93.111:10047/xcaptcha"
r = s.get(url)
r = s.get(url2)
html = etree.HTML(r.text)
 
lables = html.xpath('//label')
 
d = {'captcha1': eval(lables[0].text.split(" ")[0]), 'captcha2': eval(lables[1].text.split(" ")[
    0]), 'captcha3': eval(lables[2].text.split(" ")[0])}
print(d)
r = s.post(url2, data=d)
 
print(r.text)

这里面 eval 函数很危险,可以用 ast.literal_eval() 替代。

旅行照片 2.0

第一题:照片分析

右键属性可以得到答案。

第二题:社工实践

参考 https://co-trip.jp/post/395625/ 发现是

因此酒店肯定是附近的酒店,到 Google 地图上一看便知。

关于手机分辨率,还是看照片的属性,发现照相机型号是 sm6115 (juice),去搜一下小米哪款手机用了这个设备,发现是红米 Note 9T,它的分辨率是 2340x1080。

至于航班,我开了一下 fr42 的 7 天免费试用,发现是 NH 683。(最后我取消订阅了,Yeah)

猜数字

没做出来

LaTeX 机器人

纯文本

闭合 $$ 就行

\input{/flag1}$$\end{document}\begin{document}$$

特殊字符混入

搜索到了 Handling of special LaTeX characters in text

\catcode`_=12\catcode`#=12

它将 _ 符号和 # 符号指定类别代码 12。这样我们就可以构造出来了:

$$\catcode`_=12\catcode`#=12\input{/flag2}\end{document}\begin{document}$$

flag{latex_bec_0_m##es_co__#ol_1286394d82}

可以参考的其他资料

Flag 的痕迹

dokuwiki 没有屏蔽 diff 操作

http://202.38.93.111:15004/doku.php?id=start&do=diff