解题思路-黑客游戏

今天做了黑客榜中榜的五道题,写一下自己的做题思路

第一关是这样的

随便输入后提交

检查一下源代码,结果鼠标右击后跳出一个提示

虽然电脑f12没有查看源代码的功能,但想阻挡我查看源代码?不存在的

点击火狐浏览器右上角菜单,有个‘页面另存为’的选项,点击后吧网页保存到桌面

然后右击这个网页进行编辑查看,发现有个js脚本

发现要输入’go ‘ ,两个字母一个空格才能进入下一关

后来注意到,不需要输入密码,js代码已经显示了如果输入正确后要显示的内容,即”2sdfadf.htm”

输入新网址,就进入到了第二关

与做第一题方法一样,先把网页下载下来

根据提示,找到保存的图片,将其后缀更改为 .html,打开后

发现第二行有着‘下一关or3.htm’这个提示,输入新网址,于是到第三关

发现这一串字符为URL编码,进行解码,得到新网址,来到第四关

随便输入提交

查看这个页面的源代码

进入到第五关

随便输入后提交

回到上一页查看源代码发现脚本

可以得到以下信息:

要输入两个字母

输入后字母会附加到网址里,如输入‘as’,进入到新页面的网址为

想到了抓包,结果得不到password的信息

之后用爬虫的方法,不断更改两个字母来获取服务端响应,若返回的状态码为200即为请求成功,请求的网址即为正确的网址

import urllib.request

a = 'abcdefghijklmnopqrstuvwxyz'
b = []
for i in range(26):
    for j in range(i,26):
        b.append(a[i]+a[j])
        b.append(a[j]+a[i])

for i in b:
    try:
        url = 'http://www.cn-hack.cn/%s/'%i
        req = urllib.request.Request(url)
        req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0')
        response = urllib.request.urlopen(req)
        if response.status == 200:
            print(url)
            beak

    except:
        pass

得到URL为

http://www.cn-hack.cn/or/

即密码为 or

然后