部分学习简书为: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 大牛