js解密网站:https://tool.lu/js/
今天来玩个游戏——梦之光芒(高喊作者666)
第一关:
查看源码,得到第一关链接
第二关同样查看源码:
得到第二关地址hello.php,继续看源码:
下一关地址为a变量的值.php
拿到js里面去跑,得到a(当然你想自己算也行)
来到第三关,继续看源码:
和上一关基本差不多,但是要注意这个函数String.fromCharCode使用之后已经执行了,不需要再eval,所以删掉eval,输出变量得到
所以第四关的地址也拿到了,是d4g.php
直接访问d4g.php会重定向到第三关,所以这里抓包
直接到控制台弹窗:
可以看见它要将a全部转化为大写再+1,那么a是什么呢
将上面那一段字符串拿去格式化一下得到:
eval(function(p, a, c, k, e, d) {
e = function(c) {
return c.toString(36)
};
if (!''.replace(/^/, String)) {
while (c--) d[c.toString(a)] = k[c] || c.toString(a);
k = [function(e) {
return d[e]
}];
e = function() {
return '\\w+'
};
c = 1
};
while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);
return p
} ('a="e";d c(){b(9.8(\'7\').6==a){5.4.3=a+".2"}1{0("密码错误")}}', 15, 15, 'alert|else|php|href|location|window|value|txt|getElementById|document||if|check|function|3bhe'.split('|'), 0, {}))
在代码后面加一个弹出a
得到:
再结合之前的大写然后加一,得到:
所以下一道题的地址为:3BHE1.php
来到第五关,
这道题花了我挺久的,原本以为又是什么看源码,发现不是,在cookie里也不是,直到我抓了包重新放包:
得到下一关地址:asdf.php
来到第六关,这一关很有意思是一个信息收集:
谷歌搜一下:
得到应该是seventeen(据说可以直接从图片入手,不过我就懒得弄了)
下一关:第七关:
直接给了md5,解密一下得到下一关的密码:
eighteen8,(不过这里其实是可以猜下一关密码的,因为第七关的密码是seventeen7不难想到下一关是eighteen8)跳到第八关:
讲真,作者要是再把title设置一下就好了,
这个就有点出戏了,同样查看源码:
求1000以内的质数和,嗯,掏出我们的百度老师,copy运行一下,得到5736396
来到第九关,
这一关,美女很美,下载下来记事本打开得到密码:
第十关:
一看就是cookie,修改成admin
得到下一关密码:doyouknow
这里在url里面可以看到不对的地方:
http://monyer.com/game/game1/doyouknow.php?action=show_login_false
修改成true即可
第十二关:
一段经过了两次base64+url的密码,解密:
第十三关:
这里对我来说算是新知识吧,防止盗链:
防止盗链可以修改HTTP Headers中的Referer值
所以这里给它添加一个referer,放包发现需要输入密码
万能密码来也: 1 or 1='1
这里还可以直接盗链:
写一个html文件,然后写入以下数据(即盗链)
xss注入之简便伪造referer:<a href= "http://monyer.com/game/game1/sobeautiful.php"> 简便伪造referer</a>
到此,梦之光芒game1所有的web题就结束了(最后一关是逆向,8好意思,完全不会…)