部分學習簡書為: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 大牛