梦之光芒的小游戏解题过程(爬坑)第一篇博客

部分学习简书为:yfgeek 的大牛,感谢

第零关

地址:http://monyer.com/game/game1/

直接查看源代码  看到一个first.php 把first.php加到连接后面到下一关

第一关

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

提示请输入密码进入第二关,果断看源代码,发现

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

然后输入value=="  "中的两个空格即是通过密码

第二关

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

想看源代码,审查元素。结果发现不能查看,是用老版本的可以使用火狐的firebug插件,没有的直接去查看源代码的页面复制地址前面的 view-source:加入到url前面即可查看网页源代码

结果发现了

 1
 3     var a,b,c,d,e,f,g;
 4     a = 3.14;
 5     b = a * 2;
 6     c = a + b;
 7     d = c / b + a;
 8     e = c - d * b + a;
 9     f = e + d /c -b * a;
10     g = f * e - d + c * b + a;
11     a = g * g;
12     a = Math.floor(a);
13

一开始想写个程序来算,发现自己C语言都忘完了,还是用简单的方法的,,哈哈  ,把代码复制到控制台运行算出的值

 在这儿还可以加上在后面alert(a);放到代码执行去直接弹出a的值

 

把a输入通关

注:此题中 a = Math.floor(a) 是把a的值约等于后赋值给a

第三关

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

还是一如既往的先查看源代码,又发现了一些东西

1 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));

开始也知道这应该是js代码加密,但是找半天找不到解码的网站后来终于找了一个很好的网站:https://tool.lu/js/

解码之后的代码

function check() {
    var a = 'd4g';
    if (document.getElementById('txt').value == a) {
        window.location.href = a + ".php";
    } else {
        alert("密码错误");
    }
}

然后输入d4g过关

第四关

 第三关输入key之后又跳回来,一开始想到用burpsuite抓包,(以为大牛的做法是按esc停住页面,也可以的)在里面发现了

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>.
..
.
.
    eval("\141\75\141\56\164\157\125\160\160\145\162\103\141\163\145\50\51\53\61\73");

这里在bp复制出来的,所以有些是乱码主要是下面这行代码,js的代码经过加密的去上一关的解码地址解出来是

a = a.toUpperCase() + 1;

暂时看不懂代码,看了大牛的解析根据什么的代码

“if|check|function|3bhe”+“a = a.toUpperCase() + 1”

即是在3bhe大写后加1  通关密码为:3BHE1

第五关

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

提示到页面去找,看了一下源代码没有,那再看审查元素-网络 在请求头里面看到

monyer:the password for the next level is asdf

 密码就是asdf

 第六关

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

这道题一开到就是我的最怕,以为是图片隐写,结果折腾几下,发下并不是。然后无奈百度一下,发现是seventeen

貌似是一个网站的中间部分,就是图片中打码的地方

 第七关

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

 好吧,直接MD5解密出来是eighteen8,然后就进入下一关了,

 第八关

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

 查看源代码:

   第8关

    朋友您好,第8关欢迎您!
    我对您的聪明才智感到惊讶!
    相信我,现在世界上85%以上的人都在你之下,
    所以你可以大步向前,义无反顾地进行你的事业了。
 因为只要你肯努力,不畏惧挫折,这个世界上没有难倒你的事。    那么继续我们的约定,我将告诉你第9关的入口:   10000以内所有质数和.php

这种简单的程序都不会写,苦逼呀,我这个大菜鸡,只好去找了个c语言的的稍作修改之后

 1 #include<stdio.h>
 2 void main()
 3 {
 4     int a,b,c=0;
 5     for(a=1;a<=10000;a++)
 6     {
 7         for(b=2;b<a;b++)
 8         {
 9             if(a%b==0) break;
10         }
11         if (a==b)
12         {
13          c=c+a;
14     }}printf("%d ",c);
15 }

算出得5736396 ,把url后面的换成5736396.php到下一关

第九关

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

真是对宅狗的福利呀,嘿嘿嘿!!秒了几眼后想到图片隐写,本人习惯丢notepad++拉到最下面,哎,发现东西

那句广告词叫什么来着?
对,“在这里,在这里,在这里......”
恭喜你!
第十关密码为:MonyerLikeYou_the10level
从现在开始涉及到少许的动态东西,但你都可以按提示线索完成的!
相信自己,没错的!

第十关

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

还能说什么呢,这是一道session/cookie欺骗题,更改Cooke吧,把simpleuer改为admin

 

拿到密码doyouknow

这题大牛的解法是在console里直接输入

document.cookie="username=admin"

同样的效果

 第十一关

 地址:http://monyer.com/game/game1/doyouknow.php?action=show_login_false

这题真不会,参考一篇文章https://blog.csdn.net/hjc1984117/article/details/53995816

了解了一下什么是session,但是我还是不知道怎么做,流泪。。所以偷瞄吧

 在console里直接输入

document.cookie="username=passer"

 好像不对,看到url为

http://monyer.com/game/game1/doyouknow.php?action=show_login_false

改为

http://monyer.com/game/game1/doyouknow.php?action=show_login_true

出来通关密码smartboy

第十二关

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

 复制出来发现好像是base64解码又是url编码的换来换去的解码

终于解出来不错 密码就是sobeautiful

 第十三关

地址:monyer.com/game/game1/sobeautiful.php?id=1

显示禁止盗链

好吧,我承认我是没辙,看了https://www.jianshu.com/p/2c1e19bb6070才终于把答案搞出来

wtf..显然他判断了http来源,需要伪造http referer,那么我们在之前的第十二关的审查代码中加入:

<a href= "http://monyer.com/game/game1/sobeautiful.php"> 简便伪造referer</a>

还没完,只是出十三关的页面来,接着看了下源码,貌似是什么数据库,,其实就是sql注入吧,万能密码丢进去试试。

提交:1='or'

爆出密码:whatyouneverknow

 

第十四关

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

 

难道是逆向?果然没猜错,而且还是有壳的,看了下是upx的壳吧,网上下了UPXUnPacKer去壳,丢OD里面直接智能搜索

然后查找  注册

这个就是注册码吧,丢程序里面,出来密码

 

密码:ipasscrackme

第十五关

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

不知道你I们到这里是什么样的,反正我的提示

还以为还有什么题,结果是以前改了的cookies没改回来不行

在console输入

document.cookie="username=admin"

之后刷新

 

第一篇博客到此结束,花了好几个小时吧,第一次写这个,发现还是挺辛苦的,所以再次感谢  yfgeek 大牛

猜你喜欢

转载自www.cnblogs.com/Aiue/p/8976882.html