2018年 西邮Linux兴趣小组 纳新免试题揭秘

前言

小组2018年的免试题的五位出题人是:小组16级成员刘付杰、李猛、时宇辰、王良、娄泽豪。(此处应有掌声若干秒)

本人虽然参与了出题,但是我对其他关卡知之甚少,于是好奇的我在免试题上线了之后,与大家一起开始了破关之旅。以下以我作为第一视角所写而成的“免试题攻略”,若有错漏,还请多多包涵,与我在评论区进行交流。

第一关

目前微信推送中第一关的入口已经下线,想要挑战的同学可以点击这里的入口进行挑战。

打开本关的入口链接,首先我们看到了一大段英文,根据我们在线翻译级别的英语技术,大约意思是我们要不要继续下去:

第一关的第一个页面

第一直觉我们肯定选择【Yes!】,不过这一页还有别的信息吗?经过一番尝试,无论是叛逆的选择【No..】或者做其他操作,都没有其他有用的信息。于是我们选择【Yes!】进入第二个页面:

第一关的第二个页面

首先最引人瞩目的显然就是中间的看不清楚的字,还有下面“FUJIE”五个字母构成的目前看来意义不明的动画。中间看不清楚的字可以通过选择的方式选中复制出来看:

晓伴君王犹未起,
阻避钧衡过十年。
纳降归拟尽公卿,
欣然向我话佳境。
诚知杀身愿如此,
恭谈祖德朵颐开。

我的文学水平不怎么高,但是显然这首诗的文学水平实在是一言难尽。不过既然刻意隐藏起来,其中必有玄机,仔细读读之后,发现似乎是一个藏头诗啊——“晓阻纳欣诚恭”,不正是“小组纳新成功”的意思吗?

在刚刚复制字的时候,左右拖动一下,还可以发现网页的动画下边隐藏了这样一些文字:

然后,如你所见
Fujie被一股神秘力量肢解了!!!
这实在是太恐怖了!小组的小伙伴们都吓得不知所措了!
希望你能帮我们复原一下Fujie!

这里说了“肢解”,可能是一个很重要的信息。不过我们现在手头还没有与之相关的内容,怎么办呢?还是前几年的老方法,按F12在审查元素里面找找吧!

第一章审查元素

这里有一个隐藏起来的链接,我们点击进去看看:

第一关单词表

这里有以26个字母开头的单词为名的文件各一个。随意的下载几个来看,没什么联系,看来是我们已有的信息派上用场的时候了。联想到“FUJIE”被分开的动画以及提示的“肢解”、“藏头诗”的信息,想到了:有可能是f,u,j,i,e五个字母打头的文件被拆分了。于是下载这五个文件,使用以下命令将他们连接起来:

cat understand >> freedom
cat jealousy >> freedom
cat independence >> freedom
cat enjoy >> freedom

组合起来之后,根据文件图标和文件头来看,是一个zip的压缩包。打开之后,发现里面有两个文件:

第一关压缩包

尝试解压这个压缩包,果然是需要密码的。不过压缩文件里既然说“请给我们一句祝福的话(UTF-8)”,那么密码就呼之欲出了,藏头诗的内容“小组纳新成功”即是密码。解压之后,仔细听压缩包中的另一个mp3,在音乐的末尾有机读出下一关的IP地址。那么这一关就算完成了。

第二关

从上一关中我们得到了本关的入口,打开入口界面,我们看到了以下的界面:

第二关入口

使用Ctrl+A选择页面内的所有元素,没有发现什么有价值的东西。还是老方法,审查元素:

第二关审查元素

在注释里面说要让我们认真听音乐,然后下面还有一系列文件,在网页上分析太不方便了,干脆统统下载下来好了。下载之后,按照网页上所说的,先听听音乐吧!听了一阵子之后发现有些时候左耳会声音变小,有的时候右耳声音会变小,摘掉另一个耳机,发现有滴滴声。那么我们用频谱分析软件看一看发生了什么吧!这里用的软件是audacity。打开之后,发现听的时候三段的声音变小的频谱是这样的:

第二关频谱1
第二关频谱2
第二关频谱3

单独播放声音变小的声道的声音,似乎像发电报的声音,搜索摩尔斯电码对照着看,得到了三个单词:OPEN FREE SHARE,是小组的文化精神,应该是一个重要的信息。分析完了音乐,再看看其他的东西吧,打开XiyouLinux.zip这个压缩包,果然是需要密码,不过刚才我们刚刚得到了三个单词,进行排列组合尝试一下,发现密码就是openfreeshare。压缩包中有两个文件:

第二关压缩包

解压缩之后,运行a.out提示need parameter,尝试再次输入openfreeshare,这次并不能通过。看来还需要别的信息,打开.pri.key这个文件:

-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAL4YTFlbLUlGHoW4
bS92RUL0rOn8BnFzNp95FTpeKqUP4gDDTbwflFSZ+1jdhrTsmXHTzTl0rQZ+wNbk
iSX3k8obXFmlO21cj1uvEjmWWtxlR6A375A7iQGH10x3h2Bh9o7dnPXoUvd2wH9x
2p7tD6dPm5GR+dpXiOhByPiuHpahAgMBAAECgYEAnLQZFDw2S8YS2TbcQxjjJbvf
Yw+QHCvW5oWBO1lvHBzIuMpHJYJ+23MIIQyUxEaag5wO/IMzMzyAKWXBrVu3JqGe
Xtu4EGEPxnLG5JNbOeUfo8c25a3Kjm4pAYhEE0cfq0I0QnWKyGfwxuQghT9Fb4xZ
qNd2DIIgOpjhilLj6zUCQQD2HqWesti5VgaqBUk2XZpH0jyFW43ACk5YSuSPhkDp
hnAYFdesNpyJK5M11e/Y3imD1UB8t9s0dpAIp3PwhnpzAkEAxbnjiKUYwwwcF8ts
EZ1ahsLAXYNoBX6YOr+Rxlf2tWKqaF7JAhwb6VNdpH3oi1Jn/Eg99mHHOKgwMjZF
uugBmwJBAIAUOMoadlAUpYkrEQt6sIP5s0cO+vhaJKUr7D+IdRVRwdm23DKhhNqZ
U5VrjNKF4oLZoiKFJ0zo+lGWmu4rfWMCQD7BALYdr/43mbLznRj6GAEtTmBflGQq
CaabpmiNAoAPEIaPjrxcr38eNlo+m8+cF+S6CPBpmBEjUCifkQIBIIECQARkXiTZ
oU7fXHlOW49e1V3ExMah874+XxaZ5BmWoWZASgQ+M+cybPYsQpBKuxwFJMTZdEFo
NY+19KxfsKoFQ2k=
-----END PRIVATE KEY-----


a part of address:(please use public key to deal with)

VkqyowF5O60JThF3tHxgnXlGHDCHHWQG7y8KhlnN9xLOC3eThFPDA/NH9lQIwyiRQQV7XINxOcugiF0xdhKQpzZ9CHdyByUvyvOGyDeA77X3voIF6YivPIOhxEU9vXLLlpFp/2MFbU2D7XX9p4DNCTbn92P8zwx9vcE1FDQkYGE=

看到了一个RSA加密算法中所需要的私钥,还有一串让我们使用公钥处理的密文,看来本关与RSA算法有关联,不过我们已经没有更多信息了。思考之后,感觉首页的小组Logo很大(?),而且并没有从外部链接,可能有玄机,使用vim打开,跳转到最后,果然别有洞天!

第二关图片

先提示了#391,去第391行看看,发现了一个PNG头,删除掉前面内容,得到了一张新的图片:
第二关新的图片

图片里直截了当的就是一个某网盘的地址,下载对应文件之后是一个TXT文件,内容是:

后半部分:(使用公钥加密)
RWpjbKKOKAyi62rw6F5xVfCWUtDSnzaW1zJVmz2p9we3zWszsbuP1OLgz3bzqGYMHYPFenxx+0eX+qgJk3f5Hb6LmBG4huQp2AH7Mmi8pCTjdS3QX60x4zIObWOzh7ya+eelvQu6UcX0VGI7gGpUVTPoNbxEglb4wCE6XV9Mzhw=

看来我们又得到了一部分的内容,先暂且记下,接着分析之前的图片,之前的图片下面又出现了The parameter,后面是一堆&#开头后面跟着数字的东西,应该是HTML转义字符,对应的字符是I love Linux && I want to challenge,将这一串信息输入到刚才的a.out中,得到信息:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+GExZWy1JRh6FuG0vdkVC9Kzp
/AZxczafeRU6XiqlD+IAw028H5RUmftY3Ya07Jlx0805dK0GfsDW5Ikl95PKG1xZ
pTttXI9brxI5llrcZUegN++QO4kBh9dMd4dgYfaO3Zz16FL3dsB/cdqe7Q+nT5uR
kfnaV4joQcj4rh6WoQIDAQAB
-----END PUBLIC KEY-----

You need to find the ciphertext to get some information !!!

看来是获得了公钥,不过实际上之前已经给了我们私钥,即使我们不获得这个信息,也可以通过私钥计算出公钥,这一步理论上可以跳过。

这样我们知道了RSA的公钥和私钥,以及相应的密文,通过在线RSA解密工具,我们得到了下一关的入口:http://xyl2018.xuejietech.cn/

第三关

进入第三关,首先看到的就是一个倒计时:

第三关首页

仔细阅读之后,看来是一个迷宫游戏。下面应该是这个迷宫的构造,迷宫很大,岔路很多,而且每次的迷宫在刷新后都不同,应该是随机的。既然是随机的,人品足够应该也能走出来吧!多次尝试之后发现——运气并不能好到这种程度。那么就写一个程序帮助我计算一下路线吧!上网搜索一下迷宫问题的相关算法,有很多种解法,例如DFS、BFS等等,以下给出一个方案:

#include <stdio.h>

const int W = 101, H = 101, M = 4;
const char SPACE = '.',WALL = '#', ROUTE = '$';

char board[H][W];

typedef struct
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值