CTF-梦之光芒黑客闯关小游戏


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

游戏开始:
F12查看源代码,可以看到进入游戏第一关的地址
在这里插入图片描述

第一关

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

查看页面源代码:
在这里插入图片描述

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

当用户输入的内容等于两个空的空格时,进入下一关

第二关

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

查看页面源代码:
在这里插入图片描述

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;
    }
}

是一些算术计算的公式,我们只需要在浏览器控制台输入一个a,就能出现答案了。
在这里插入图片描述

第三关

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

查看源代码:
在这里插入图片描述
将那段javascript代码复制下来,然后把eval改成alert,带入浏览器控制台执行

alert(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));

在这里插入图片描述

可以看到一段javascript代码:

我们输入的内容等于d4g,即可进入下一关。

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

第四关

当你输入答案的时候,又会跳回第三关,你是不是很迷惑,当然,这个作者留的一个坑。

打开burp suite,输入d4g,进行拦截,选择Response to this requests,抓取返回包。
在这里插入图片描述
发送数据包过后,我们看到了d4g.php的页面源代码。

<meta http-equiv="refresh" content="0;url=424178.php">

这段代码表示,每隔0秒刷新一次页面,并且跳转到424178.php。
在这里插入图片描述
我们将这段代码删除,然后进行发包,就可以来到第四关了。
在这里插入图片描述
monyer.com/game/game1/d4g.php

查看源代码:
在这里插入图片描述
有两段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, {}))
eval("\141\75\141\56\164\157\125\160\160\145\162\103\141\163\145\50\51\53\61\73");

第一段代码我就不分析了…(本人javascript不太行),我们就直接来看第二段吧,老手段,将eval改成alert带入浏览器控制台执行

a=a.toUpperCase()+1;

在这里插入图片描述
a肯定是我们要的答案,日常操作,控制台输入个a
在这里插入图片描述
提交3BHE1即可进入下一关

第五关

http://monyer.com/game/game1/3BHE1.php
在这里插入图片描述
题目提示,藏在页面里了。

F12,然后点击Network,刷新一下,可以看到返回包中有一段话。

the password for the next level is asdf

在这里插入图片描述
提交密码asdf,即可进入下一关。

第六关

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

查看源代码:
在这里插入图片描述
给了提示,通过以下图片中线索寻找密码
可以看出作者对某些字符打了码,打码的部分就是答案吧

我们可以看看不打码的部分

Get the latest fashion,beauty,dating,and health tips.Plus,win ferrbies,take quizzes,and check your daily horoscope!

在这里插入图片描述
科学上网,直接复制这段话搜索
在这里插入图片描述
密码就是seventeen,进入下一关

第七关

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

在这里插入图片描述
直接MD5破解
在这里插入图片描述

第八关

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

刚开始以为目录不存在,迷得很呢。
查看页面源代码,作者给了提示:

    第8关

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


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

    10000以内所有质数和.php

在这里插入图片描述
求出10000以内所有质数和,python脚本运算:

def _sum(num,n):
    return(sum(num))

num=[];
i=2
for i in range(2,10000):
   j=2
   for j in range(2,i):
      if(i%j==0):
         break
   else:
      num.append(i)
n=len(num)
ans = _sum(num,n)
print (ans)

答案为:5736396

第九关

http://monyer.com/game/game1/5736396.php
在这里插入图片描述
作者给了提示:你得往美女肉里面看,看仔细哦!(我信你个鬼哦,当时我用放大镜看了两个小时,鼻血都流干了,还是没发现!!)

我们将图片保存,用文本工具打开,即可看到密码。
在这里插入图片描述

第十关

http://monyer.com/game/game1/MonyerLikeYou_the10level.php
在这里插入图片描述
根据页面提示,当身份为admin时,即可显示密码。

修改cookie,username的值改成admin
在这里插入图片描述

第十一关

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

和上一关相同,修改PHPSESSID的值为passer,即可查看密码。

在这里插入图片描述

第十二关

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

在这里插入图片描述
给了一段代码,将代码进行base64解码,再进行url解码,循环两次,就可以看到明文了。
在这里插入图片描述

第十三关

http://monyer.com/game/game1/sobeautiful.php
直接访问时看到页面提示:
在这里插入图片描述
利用hackbar,勾选Referer。
添加上地址:http://monyer.com/game/game1/smartboy.php?
在这里插入图片描述
在这里插入图片描述
查看页面源代码,发现一段注释内容
在这里插入图片描述

<!--
dim connect
Response.Expires=0 '系统数据库连接
Set connect=Server.CreateObject("ADODB.Connection")
connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("/Database.mdb") & ";Mode=ReadWrite|Share Deny None;Persist Security Info=False"

set rss=server.createobject("adodb.recordset")
sqlstr="select password,pwd from [user] where pwd='"&request("pwd")&"'"
rss.open sqlstr,connect,1,1
if rss.bof and rss.eof then
  response.write("密码错误")
else
  response.write(rss("password"))
end if
rss.close
set rss=nothing
connect.close
set connect=nothing
-->

可以看到pwd传参并没有进行过滤,只需要我们查到一条记录,即可获取密码

万能密码:

' or '1'='1

在这里插入图片描述

第十四关

http://www.monyer.com/game/game1/whatyouneverknow.php
在这里插入图片描述
打开exe,需要输入注册码。
在这里插入图片描述
查壳:
在这里插入图片描述
脱壳:
在这里插入图片描述
用Ollydbg打开,搜索字符串。
在这里插入图片描述
看到注册成功的字符
在这里插入图片描述
可以看到在判断之前,程序将一个值mov到edx寄存器中,然后进行判断。

  • JE指令 : 等于则跳转
    在这里插入图片描述
    输入到注册机中。
    在这里插入图片描述
    在这里插入图片描述
    密码为ipasscrackme

如果提交后如果提示:
在这里插入图片描述
添加第十关和第十一关所使用的cookie
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值