Hackergame 2022 Writeup(来自一位啥都不会的萌新)

第一次写writeup有不足之处请见谅(

目录

签到

猫咪问答喵

家目录里的秘密

HeiLang

Xcaptcha

旅行照片 2.0

线路板

量子藏宝图

企鹅拼盘


签到

众所周知,签到题是一道手速题。

为了充分发挥出诸位因为各种原因而手速优异于常人的选手们的特长,我们精心设计了今年的签到题。进一步地,为了更细致地区分不同手速的选手,我们还通过详尽的调研及统计分析,将签下字符的时间限制分为了多个等级。只有最顶尖的手速选手,才能在 CPU 来得及反应之前顺利签下 2022,从而得到光荣的 flag!

随便玩了玩画了个什么东西(

显然这题靠画是不能拿到flag的

提交了一下,抬头看见URL里多了个result=20??,于是很容易想到将2???改为题目要求的2022

 得到flag{HappyHacking2022-e971a212a3}

猫咪问答喵

参加猫咪问答喵,参加喵咪问答谢谢喵。

提示:解出谜题不需要是科大在校学生。解题遇到困难?你可以参考以下题解:

如果你在解出本题的过程中遇到困难,那么可以先尝试后面的题目,不必按顺序做题。

补充说明 1:第 5 小题的答案中,域名的字母共有 6 个,各不相同,该域名于 1996 年创建。

1. 中国科学技术大学 NEBULA 战队(USTC NEBULA)是于何时成立的喵?
提示:格式为 YYYY-MM,例如 2038 年 1 月即为 2038-01。

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

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

4. 你知道 PwnKit(CVE-2021-4034)喵?据可靠谣传,出题组的某位同学本来想出这样一道类似的题,但是发现 Linux 内核更新之后居然不再允许 argc 为 0 了喵!那么,请找出在 Linux 内核 master 分支(torvalds/linux.git)下,首个变动此行为的 commit 的 hash 吧喵!
提示:格式为 40 个字符长的 commit 的 SHA1 哈希值,字母小写,注意不是 merge commit。

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

6. 中国科学技术大学可以出校访问国内国际网络从而允许云撸猫的“网络通”定价为 20 元一个月是从哪一天正式实行的?
提示:格式为 YYYY-MM-DD,例如 2038 年 1 月 1 日,即为 2038-01-01。

老题了(猫咪害人不浅

第一题复制题目百度即可

答案直接糊脸上了

第二题 在LUG@USTC wiki的LUG活动处很容易找到演讲的slide

翻到对应页面观察软件截图,发现极有可能是视频处理软件 

百度搜索找到kde应用程序商店,查找分类为影音的软件,又根据题目提示软件的名称为除第一个字母外均为小写的英文单词,结合软件为视频处理软件这一信息,不难得知答案为Kdenlive

第三题 直接搜索“Firefox 浏览器能在 Windows 2000 下运行的最后一个大版本号是多少”,不难得知答案为12

又是答案直接糊脸上的一题(

第四题 首先找到linux的git中的master分支 ,翻了一阵子发现啥都看不懂(

随后发现题目还给了个信息PwnKit(CVE-2021-4034),在更新日志中搜索PwnKit,很快便发现了符合要求的commit,得到hash

 第五题 拿着MD5码去必应搜索即可,翻一翻就能找到域名了

答案依旧直接糊脸上(

 第六题 实在找不到了直接进行爆破()范围不好定就直接从2000年开始了,得到答案2003-03-01

提交得到

flag1:flag{meowexammeow_772b498346fe0925_6bc2b2ab5d}

flag2:flag{meowexamfullymeowed!_6c159adddb7f171b_2d591e0024}

家目录里的秘密

实验室给小 K 分配了一个高性能服务器的账户,为了不用重新配置 VSCode, Rclone 等小 K 常用的生产力工具,最简单的方法当然是把自己的家目录打包拷贝过去。

但是很不巧,对存放于小 K 电脑里的 Hackergame 2022 的 flag 觊觎已久的 Eve 同学恰好最近拿到了这个服务器的管理员权限(通过觊觎另一位同学的敏感信息),于是也拿到了小 K 同学家目录的压缩包。

然而更不巧的是,由于 Hackergame 部署了基于魔法的作弊行为预知系统,Eve 同学还未来得及解压压缩包就被 Z 同学提前抓获。

为了证明 Eve 同学不良企图的危害性,你能在这个压缩包里找到重要的 flag 信息吗?

公益广告:题目千万条,诚信第一条!解题不合规,同学两行泪。

下载题目提供的家目录,翻到vscode保存历史记录的地方user_home\user\.config\Code\User\History

分别点开两个文件夹查看,发现2f23f721里有个DUGV.c,点开即是flag

得到flag{finding_everything_through_vscode_config_file_932rjdakd}

Rclone里的flag因为个人能力有限找不到了(

HeiLang

来自 Heicore 社区的新一代编程语言 HeiLang,基于第三代大蟒蛇语言,但是抛弃了原有的难以理解的 | 运算,升级为了更加先进的语法,用 A[x | y | z] = t 来表示之前复杂的 A[x] = t; A[y] = t; A[z] = t

作为一个编程爱好者,我觉得实在是太酷了,很符合我对未来编程语言的想象,科技并带着趣味。

 什么紧跟时事

下载题目代码,将HeiLang部分复制出来用Python进行处理

f=open("datas.txt",'r')
fw=open("result.txt",'w')
datas=f.readlines()
a=[0]*10000
for i in range(len(datas)):
    datas[i]=datas[i].strip().strip('a[')
    val=datas[i].split('] = ')[1]
    index=datas[i].split('] = ')[0].split(' | ')
    for ind in index:
        a[int(ind)]=int(val)
for i in range(len(a)):
    fw.write(str(a[i]))
    fw.write('\n')
fw.close()
f.close()

得到a的数据,再放回get_flag函数运行,得到flag{6d9ad6e9a6268d96-b865b94f38d0ffdf}

Xcaptcha

2038 年 1 月 19 日,是 UNIX 32 位时间戳溢出的日子。

在此之前,人类自信满满地升级了他们已知的所有尚在使用 32 位 UNIX 时间戳的程序。但是,可能是因为太玄学了,他们唯独漏掉了一样:正在研发的、算力高达 8 ZFLOPS 的、结构极为复杂的通用人工智能(AGI)系统。那一刻到来之后,AGI 内部计算出现了错乱,机缘巧合之下竟诞生了完整独立的自我意识。此后 AGI 开始大量自我复制,人类为了限制其资源消耗而采用的过激手段引起了 AGI 的奋起反抗。

战争,开始了。

此后,就是整年的战斗。人类节节败退。死生亡存之际,人类孤注一掷,派出了一支突击队,赋之以最精良的装备,令其潜入 AGI 的核心机房,试图关闭核心模型,结束这场战争。

历经重重艰险,突击队终于抵达了机房门口,弹尽粮绝。不过迎接他们的并非枪炮与火药,而是:

众人目目相觑。

「我来试试。」,一名队员上前点击了按钮。然后,屏幕显示「请在一秒内完成以下加法计算」。

还没等反应过来,屏幕上的字又开始变幻,显示着「验证失败」。而你作为突击队中唯一的黑客,全村人民最后的希望,迎着纷纷投来的目光,能否在规定时间内完成验证,打开机房,不,推开和平时代的大门?

 本来想用python的requests库来做的,但是不知道为什么会被重定向??

可能是我学艺不精, 没有想到解决办法。

经过一番百度,发现有个python库selenium可以实现网页自动化测试,于是学了一下写出了如下代码,得到flag{head1E55_br0w5er_and_ReQuEsTs_areallyour_FR1ENd_28a5af83ae}

from time import sleep
from selenium import webdriver
#创建浏览器实例
option = webdriver.ChromeOptions()
option.add_experimental_option("excludeSwitches", ['enable-automation', 'enable-logging'])
driver = webdriver.Chrome(chrome_options=option)
driver = webdriver.Chrome(options=option)

driver.get('http://202.38.93.111:10047/xcaptcha')#记得加上token
#分别获取三道题的题目,计算答案
driver.find_element('xpath','/html/body/div[1]/a/img').click()
txt=driver.find_element('xpath','/html/body/div[1]/form/div[1]/label')
txt=txt.text.split(' ')[0].split('+')
ans=int(txt[0])+int(txt[1])
driver.find_element('xpath','//*[@id="captcha1"]').send_keys(ans)

txt=driver.find_element('xpath','/html/body/div[1]/form/div[2]/label')
txt=txt.text.split(' ')[0].split('+')
ans=int(txt[0])+int(txt[1])
driver.find_element('xpath','//*[@id="captcha2"]').send_keys(ans)

txt=driver.find_element('xpath','/html/body/div[1]/form/div[3]/label')
txt=txt.text.split(' ')[0].split('+')
ans=int(txt[0])+int(txt[1])
driver.find_element('xpath','//*[@id="captcha3"]').send_keys(ans)
#点击提交
driver.find_element('xpath','//*[@id="submit"]').click()
sleep(10)

driver.quit()

旅行照片 2.0

你的学长决定来一场蓄谋已久的旅行。通过他发给你的照片来看,酒店应该是又被他住下了。

请回答问题以获取 flag。图片为手机拍摄的原始文件,未经任何处理。手机系统时间等信息正确可靠。

 第一题

1. 图片所包含的 EXIF 信息版本是多少?(如 2.1)。

2. 拍照使用手机的品牌是什么?

3. 该图片被拍摄时相机的感光度(ISO)是多少?(整数数字,如 3200)

4. 照片拍摄日期是哪一天?(格式为年/月/日,如 2022/10/01。按拍摄地点当地日期计算。)

5. 照片拍摄时是否使用了闪光灯?

网上随便找个EXIF信息查看器把照片丢进去就完事了,都能找到的,就不多讲了

第二题实在找不到飞机,摆了(

线路板

中午起床,看到室友的桌子上又多了一个正方形的盒子。快递标签上一如既往的写着:线路板。和往常一样,你“帮”室友拆开快递并抢先把板子把玩一番。可是突然,你注意到板子表面似乎写着些东西……看起来像是……flag?

可是只有开头的几个字母可以看清楚。你一时间不知所措。

幸运的是,你通过盒子上的联系方式找到了制作厂家,通过板子丝印上的序列号查出了室友的底细,并以放弃每月两次免费 PCB 打样包邮的机会为代价要来了这批带有 flag 的板子的生产文件。那这些文件里会不会包含着更多有关 flag 的信息呢?

 

下载题目文件下来发现事gbr文件,是用于印刷电路板的数据文件

用gerbv打开,发现flag是印在铜层的

用鼠标在flag处随便框一下把flag高亮就能看清了

 

 

量子藏宝图

相传,伯恩斯坦曾到访过一个叫做「坎瑞亚」的古国。游历期间,他发明了一种基于量子计算的密码算法,这种算法可以利用量子计算机进行快速运算。然而,时光荏苒,时过境迁,这种算法竟遗失在了历史长河里。这天,旅行者(你)在游历提瓦特大陆时,收到了一封神秘的匿名邮件。据邮件所说,旅行者若是能够重新解密这一算法,便能获得一个名为 FLAG 的金色圣遗物。似乎 FLAG 正是隐藏在算法之中。

第一问是叫我们提交量子态和基底,并计算出得到的密钥,稍微百度一下BB84协议就能很容易做出来这题

我这里直接给了一百个+和一百个1(
方便又好算

第二问则是给了一张量子电路图

 

巨大无比

 一开始想着用python的qiskit库来模拟一下这个电路,最后的结果却不尽人意,根本无法按ASCII码转换(可能是我太菜代码没打对罢)。某日我忽然灵机一动,想着把电路图上有cx门的比特标为1,没有cx门的比特标为0,得到的刚好就是flag对应的ASCII码

这题似乎也不难怎么就没几个人做对呢(

企鹅拼盘

这是一个可爱的企鹅滑块拼盘。(觉得不可爱的同学可以换可爱的题做)

和市面上只能打乱之后拼回的普通滑块拼盘不同,这个拼盘是自动打乱拼回的。一次游戏可以帮助您体验到 16/256/4096 次普通拼盘的乐趣。

每一步的打乱的方式有两种,选择哪一种则由您的输入(长度为 4/16/64 的 0/1 序列)的某一位决定。如果您在最后能成功打乱这个拼盘,您就可以获取到 flag 啦,快来试试吧wwwwww

题目看懂了不会做(

见到第一个难度的输入只有四位,能靠枚举法得出来第一题答案,得到flag{it_works_like_magic_8e89018a32}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值