天行的游戏 2021 题解

开始界面

点击 START 按钮开始游戏

Level 0

可以看到目前的 url 地址是:https://game-2021.imwtx.com/level_0

很轻易就能想到修改 url 地址为 https://game-2021.imwtx.com/level_1

进入下一关

Level 1

网页上有个按钮,但是点击不了。

Tips: 点击按钮就能进入下一关。

而他又让我们点击按钮来进入下一关。

废话不多说,F12 启动:

<button id="btn" class="btn btn-primary btn-lg" disabled>下一关</button>

可以看到这个按钮标签是被修改过的,删除这个按钮标签的 disabled。

结果是:<button id="btn" class="btn btn-primary btn-lg">下一关</button>

然后发现按钮可以点击了。

进入下一关

Level 2

看提示:
Hit 1: 草(中日双语)

Hit 2: 好多人卡在这了,给点提示好了,本题和代码没有关系,就是需要开脑洞而已,而且答案是一个数字。

图片不认识,大概是《你的名字》,上面还糊了一个表情,把这个表情截下来扔到搜索引擎可以得知是猫扑网的 233 编号的表情,得到答案 233

这个题应该是凑数用的,二次元福利题

进入下一关

Level 3

进入后发现是个 range_bar ,随便点了一个数字得到以下结果:

从前有一个故事:
测试工程师在酒吧点了 0.16373 杯啤酒,
然后酒吧爆炸了。

你想提取的答案数量:0.16373

一个很知名的程序员笑话,此时的 url 是:https://game-2021.imwtx.com/233?number=0.16373,所以我们打算让它溢出。

修改 url 为 https://game-2021.imwtx.com/233?number=2

得到结果:

你提取的 2 个答案:
Shirai_Kuroko
Shirai_Kuroko

你想提取的答案数量:1.5

答案已经出来了:Shirai_Kuroko

进入下一关

Level 4

开局就一句话:Please use SWE Secure Browser

众所周知,这种让你用 xx 浏览器来解题的都是修改 UA 来进行实现的。

按 F12,右上角三个点,More tools,Network conditions,修改 User agent,把 Select auto matically 取消勾选,输入自定的 UA :SWE Secure Browser。

刷新一下,得到结果:

Answer: pigeon

进入下一关

Level 5

就一个图片,没有任何卵用,查看网页源代码:

注释里藏了非常长的一段字符:

太长了就不放了。

非常长,大概扫了一眼,基本上都是英文字母,应该不是某种加密算法。

编程扫了一下字符的个数,发现其中是有极少数大写字母,把这些大写字母单独摘出来能得到一个单词:MATRYOSHKA,也就是答案

进入下一关

Level 6

开局就一句话,MATRYOSHKA-114514 (太臭了)

目前的 url 是:https://game-2021.imwtx.com/MATRYOSHKA

把它上面的字符拼接到后面得到新的 url:https://game-2021.imwtx.com/MATRYOSHKA-114514

得到一句话,Next: 382551,好家伙,跟名字一样,这是个俄罗斯套娃关。

手动是不可能手动的,这辈子都不可能手动的,编程爬下网页,获取每个网页的数字,并且拼接到 url 地址上作为下一个地址。

很快就发现不对劲,似乎死循环了,所以只好获取下整个字符串,发现扫到 126227 出现问题,他给的是 Next: 243461 + 243461,不能直接扫出结果当下一个,手动算下结果是 486922。

然后还是跟刚才一样继续扫,很快就又死循环了,在 820420 扫下字符串,得到 Next: min of 619369 154893, 801733 ,得到结果是 154893。

继续扫,不出意外,又死循环了,在 571214 扫到字符串 Next: 452998, Reverse it.反转一下得到答案:899254

进入后得到新网页: https://game-2021.imwtx.com/MATRYOSHKA-472268

这个网页上点超链接会下载一个压缩包 MATRYOSHKA

问题还没有解决,打开压缩包发现还是一个套娃题。

500 个文件,很明显正确答案就藏在其中一个,于是我还是写了个代码继续扫,但很快就又发现它死循环了,于是我统计下了循环次数,结果发现似乎并没有把每个文件都扫一边,所以猜测可能是正确答案不在循环列表中。反其道而行至,循环一次就删掉之前的文件,很快就删完了,但是还剩下最后一个文件,很明显就是正确答案:emoticon

进入下一关

Level 7

这一关很简单,因为很明显就能看出这是 emoji 编码,这种编码的特点是会以 ('_') 当作结尾。

查看网页源代码很快就能发现一段是以 ('_') 为结尾的。

这种编码可以很方便的解码,只需要按 F12,然后在 Console 中输入并回车就行,得到答案:rreesseett

进入下一关

Level 8

这一关从图片和 url 地址就能看出来是跟 git 相关的,并且可能还会跟 git reset 命令相关。

查看了下网页加载的文件,感觉没什么地方能够放 git 项目,但是又想到了一种可能,就是将项目的压缩包做成图片。

将网页上的图片下载下来,并将后缀改成 zip,然后解压就能得到这个 git 项目,剩下的就很简单了。

项目中只有一个文件,打开后提示答案不在那里。

打开整个 git 项目,用 git reflog 查看下整个项目的提交历史 (awsl)

使用命令返回到第一次提交 git reset --hard 8c12a3d

打开 answer.txt,得到答案:Octocat

进入下一关

Level 9

这一关很明显是某种编码,从网页注释中可以得知这是 RSA 编码,然后就是计算了。

公共 key 是:2332021,因为 233 是质数,所以 2021 是两个质数的乘积,编程算了下,是 43 47,于是 42 46 = 1932

此时就能算出需要的 d 就是 d = ( x * 1932 + 1 ) / 233x 为任意整数,d 也为整数,还是编程算了下,得到 x = 209 d = 1733,于是获得了私有 key17332021

此时分别对网页上的密文 1608 1660 1796 1135 1012 进行解密,得到明文:67 105 114 110 111

从纯数字的编码和并不大的结果来看,应该是 ASCII 码,换算了下得到答案:Cirno

进入下一关

Level 10

网页中提示:访问失败,您没有管理员权限。,看来又是需要授权,按 F12 查看下网页加载的文件,发现有个网页是 POST 请求的,url 地址是 https://game-2021.imwtx.com/level_10/auth

看了下 Headers,发现了 authorization 是管理身份验证的。于是用 BASE64 解码后得到:{"typ":"JWT","alg":"HS256"}{"role":"user"} 以及一串乱码。

简单的修改 useradmin 后发现无法通过验证。

从前面的信息中可以得知,这是一个 JWT 认证,于是只能得到 key 才能成功伪造来骗过服务器。

在网上查找破解 JWT 的工具,找到一个项目 [
c-jwt-cracker](https://github.com/brendan-rius/c-jwt-cracker/blob/master/Dockerfile),并在服务器上部署了 docker。

然后输入命令:

./jwtcrack eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoidXNlciJ9.OXNW-sM3BK8NfrjygvHBeIH9sP8flZ1lyvegwNciHgE

得到破解结果:Secret is "sky"

得到 key 就是 sky

然后在 JWT 生成网站 https://jwt.io 伪造

得到 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiYWRtaW4ifQ.fyGdXihZqfPVGvqZtl_6GsPc2tPUYMLYSYTML4DmVJg

重新访问界面得到:

{
    "code": 0,
    "msg": "Answer: Ohhhhhhhhhhhhhhh"
}

完结撒花

提交你名字的地方为:https://game-2021.imwtx.com/Ohhhhhhhhhhhhhhh

注意:这个页面并没有做验证,还请您不要重复提交哦。

总结

题目不错,孩子很爱吃,下次还会返购。

最后修改:2021 年 01 月 23 日 10 : 46 AM
如果觉得我的文章对你有用,请随意赞赏