HackThisSite JavaScript mission 1-7
题目来源:https://www.hackthissite.org/missions/javascript/
2020 年 10 月 28 日迁移老博客时注:这篇文章是洒家刚接触计算机和信息安全时的社团作业,那时候 URL decode 全靠往百度地址栏复制,F12 也不会按,属实怀旧了一波。
第 1 关¶
我先尝试输入 123456
,当然失败了。
搜索按钮的文字:
找到代码,发现有一个名为 check
的函数:
再次搜索:
答案明显:cookies
第 2 关¶
点进去,直接 fail:
发现 https://www.hackthissite.org/missions/javascript/2/ 直接跳转到了 https://www.hackthissite.org/missions/javascript/2/fail.php
我在未跳转时按下了 ESC
键,然后在前面的源代码发现这个:
结合提示和代码,尝试禁用 JavaScript
:
再点进去:
第 3 关¶
出现了这个东西:
var foo = 5 + 6 * 7
var bar = foo % 8
var moo = bar * 2
var rar = moo / 3
function check(x)
{
if (x.length == moo)
{
alert("win!");
window.location += "?lvl_password="+x;
} else {
alert("fail D:");
}
}
先正面解一下:
foo == 47
bar == 7
moo == 14
rar == 4.666667
我就输入 14 个字母
看来是过了?
第 4 关¶
第 4 个 mission,又是密码:
当然,一开始猜测,报错误。
同上某题方法,搜索 password
于源代码。发现:
<button onclick="javascript:check(document.getElementById('pass').value)">Check Password</button>
同样把 <input>
框的文字传递给 check
函数。
这是什么玩意儿?
输入 hack_this_site
,错误。
仔细研究代码,这好像是个坑。RawrRawr
字符串就 == "moo"
,函数 check
里面的 "+RawrRawr+" == "hack_this_site"
只是返回一个 false
而已,对 RawrRawr
无影响。if (x == ""+RawrRawr+"")
,这 RawrRawr
两边加个 ""
,不就没加吗!所以输入 moo
:
这次成功了。
第 5 关¶
5th mission 又一个密码题。老规矩:
这里面出现了 %69%6C
什么东西。在很多搜索引擎的地址栏见过,直接利用一下:
替换:
因此输入 ilovemoo
过了。
第 6 关¶
又是密码题,老规矩:
有两段 JavaScript,一个在外部。打开之:
综合看来,有 check
,checkpass
,checkpassw
三个函数。
研究发现,显然密码是:moo pwns
第 7 关¶
第七个密码题。
这一次,源代码里 Check Password
都搜不出来了。
直接看:
这是什么玩意儿啊!
似乎 JavaScript 代码内容被转了码。目测是 ASCII 码:(明显是 <button ......
)
那就写个 Python 代码(正好逗号构成 tuple
):
翻译出来:
<button onclick='javascript:if(document.getElementById("pass").value=="j00w1n"){alert("YouWIN!");window.location+="?lvl_password="+document.getElementById("pass").value}else{alert("WRONG!Tryagain!")}'>CheckPassword</button>
密码为 j00w1n
全部完成。