梦之光芒的第1个小游戏

点击 http://monyer.com/game/game1/ 开始闯关。

level 00

查看源码:

1
2
3
4
5
6
7
8
9
10
<div class="info">
欢迎来到梦之光芒的小游戏。<br>
玩这个游戏,您需要有JS加解密基础,SQL注入基本常识等...<br>
如果您参加本游戏,则视为您已经同意<strong>“这仅仅是个小游戏”</strong>这个原则,所以请不要在技术上过于较真,谢谢!<br>
本游戏所有权归Monyer所有,但您每过一关,您有权利在不通知Monyer的情况下保留代码。不当的地方还请批评指教!<br>
<br>请点击链接进入第1关:
<span>连接在左边→</span>
<a href="first.php"></a>
<span>←连接在右边</span><br>
</div>

下一关地址:http://monyer.com/game/game1/first.php

level 01

查看源码:

1
2
3
4
5
6
7
8
9
<script type="7662ed00eec404298a591c18-text/javascript">
function check(){
if(document.getElementById('txt').value==" "){
window.location.href="hello.php";
}else{
alert("密码错误");
}
}
</script>

下一关地址:http://monyer.com/game/game1/hello.php

level 02

查看源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script type="text/javascript">
document.oncontextmenu=function(){return false};

var a,b,c,d,e,f,g;
a = 3.14;
b = a * 2;
c = a + b;
d = c / b + a;
e = c - d * b + a;
f = e + d /c -b * a;
g = f * e - d + c * b + a;
a = g * g;
a = Math.floor(a);

function check(){
if(document.getElementById("txt").value==a){
window.location.href=a + ".php";
}else{
alert("密码错误");
return false;
}
}
</script>

运行代码可得到 a == 424178

下一关地址:http://monyer.com/game/game1/424178.php

level 03

查看源码:

1
2
3
<script type="text/javascript">
eval(String.fromCharCode(102,117,110,99,116,105,111,110,32,99,104,101,99,107,40,41,123,13,10,09,118,97,114,32,97,32,61,32,39,100,52,103,39,59,13,10,09,105,102,40,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,39,116,120,116,39,41,46,118,97,108,117,101,61,61,97,41,123,13,10,09,09,119,105,110,100,111,119,46,108,111,99,97,116,105,111,110,46,104,114,101,102,61,97,43,34,46,112,104,112,34,59,13,10,09,125,101,108,115,101,123,13,10,09,09,97,108,101,114,116,40,34,23494,30721,38169,35823,34,41,59,13,10,09,125,13,10,125));
</script>

对应字符串为:

1
2
3
4
5
6
7
8
function check(){
var a = 'd4g';
if(document.getElementById('txt').value==a){
window.location.href=a+".php";
}else{
alert("密码错误");
}
}

下一关地址:http://monyer.com/game/game1/d4g.php

level 04

进入第 4 关后页面自动跳转回第 3 关,直接查看第 4 关源码

1
2
3
4
5
6
7
<script type="text/javascript">
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,{}))
</script>

<script type="text/javascript">
eval("\141\75\141\56\164\157\125\160\160\145\162\103\141\163\145\50\51\53\61\73");
</script>

分别得到 3bhe 以及 "a=a.toUpperCase()+1;",最终 a == 3BHE1

下一关地址:http://monyer.com/game/game1/3BHE1.php

level 05

页面源码中无多余信息,发现返回的响应中:

下一关地址:http://monyer.com/game/game1/asdf.php

level 06

搜索:

输入密码:seventeen

下一关地址:http://monyer.com/game/game1/seventeen7.php

level 07

搜索该 MD5 得到对应明文:eighteen8,提交后进入下一关。

下一关地址:http://monyer.com/game/game1/eighteen8.php

level 08

伪装成 404 页面(差点被骗),查看源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<body>
<h1>Not Found</h1>
<p>The requested URL /eighteen8.php was not found on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
<p style="display:none">
第8关

朋友您好,第8关欢迎您!
我对您的聪明才智感到惊讶!
相信我,现在世界上85%以上的人都在你之下,
所以你可以大步向前,义无反顾地进行你的事业了。
因为只要你肯努力,不畏惧挫折,这个世界上没有难倒你的事。


那么继续我们的约定,我将告诉你第9关的入口:

10000以内所有质数和.php
</p>
</body>

计算素数和:

下一关地址:http://monyer.com/game/game1/5736396.php

level 09

二进制打开图片,文件尾内容:

输入密码:MonyerLikeYou_the10level,进入下一关。

下一关地址:http://monyer.com/game/game1/MonyerLikeYou_the10level.php

level 10

在请求中发现 Cookie 有 username 字段:

将 username 设置为 admin,刷新页面,得到密码:doyouknow。

下一关地址:http://monyer.com/game/game1/doyouknow.php

level 11

将 action 更改为 show_login_true,得到密码:smartboy

下一关地址:http://monyer.com/game/game1/smartboy.php

level 12

关键字符串

1
JTRBJTU0JTYzJTdBJTRBJTU0JTVBJTQ3JTRBJTU0JTU5JTc5JTRBJTU0JTU5JTMxJTRBJTU0JTU5JTc4JTRBJTU0JTYzJTMxJTRBJTU0JTYzJTMwJTRBJTU0JTU5JTM1JTRBJTU0JTU5JTMyJTRBJTU0JTYzJTMxJTRBJTU0JTVBJTQ0JTRBJTU0JTRBJTQ2JTRBJTU0JTYzJTc3JTRBJTU0JTU5JTM0JTRBJTU0JTYzJTc3

Base64解码后得到

1
%4A%54%63%7A%4A%54%5A%47%4A%54%59%79%4A%54%59%31%4A%54%59%78%4A%54%63%31%4A%54%63%30%4A%54%59%35%4A%54%59%32%4A%54%63%31%4A%54%5A%44%4A%54%4A%46%4A%54%63%77%4A%54%59%34%4A%54%63%77

URI解码后:JTczJTZGJTYyJTY1JTYxJTc1JTc0JTY5JTY2JTc1JTZDJTJFJTcwJTY4JTcw,再经过 Base64 解码和 URI 解码,得到:sobeautiful.php

下一关地址:http://monyer.com/game/game1/sobeautiful.php

level 13

在请求中添加 Referer 字段:

SQL 注入,将 pwd 设置为 123'or1=1;,发送 POST 请求,得到密码:whatyouneverknow

下一关地址:http://monyer.com/game/game1/whatyouneverknow.php

level 14

使用 PEiD 工具查看相关信息:

使用 UPX 脱壳,打开 IDA 查找 注册失败 后:

输入正确的注册码 9eeee9eb50eff979

下一关地址:http://monyer.com/game/game1/ipasscrackme.php

level 15

在控制台中设置 usernamedocument.cookie="username=admin",刷新:

在另一个标签页打开访问 http://monyer.com/game/game1/doyouknow.php?action=show_login_true,显示出下一关的密码后,刷新 level 15 的标签页:

------ 本文结束 ------

版权声明

Memory is licensed under a Creative Commons BY-NC-SA 4.0 International License.
博客采用知识共享署署名(BY)-非商业性(NC)-相同方式共享(SA)
本文首发于Memory,转载请保留出处。