夢之光芒的小游戲解題過程(爬坑)第一篇博客


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM