BCTF 选拔赛一道蛋疼的题目:真假难辨
BCTF里web板块有一道很有趣的题目,当时在做题的时候绕了点弯子,直到做出来的一刻才倍感蛋疼。这里就把流程记录一下,供各位看官一笑。
题目的描述是“唯有游戏与美食不可辜负。米特尼克拿到Alice的资料之后接着在BAT内网游荡,他发现了一个被限制的游戏,只有管理员Alice自己才能玩,但区区一个管理员的限制怎么能挡住米特尼克爱游戏的心!”然后给出了个链接,点进去发现就一个按钮,提示“此游戏只能在本机运行!”点击按钮后弹出提示“You must login at host computer ”。要绕过这一步很简单,打开burpsuite,刷新下页面后查看拦截的内容,发现有个ip的字段,修改为127.0.0.1 后提交,此时错误提示不见了,取而代之的是一个基础认证登录框。试了几次发现admin admin(先前是笔误,现在改好了)可以顺利登录进去(别问我怎么做到的,我猜的!真的!)
登录进去后跳转到了一个画风极其拙劣的游戏界面,如图
一个绿衣服绿帽子的小人捧着枪打僵尸的剧情。这种游戏对于我这样一个骨灰级职业玩家根本就是小菜一碟有没有!于是在我发现了主角只有五点血、小怪根本打不死、后期小怪各种打鸡血加速移动的逆天bug之下,我放弃了-。- 甚至一度怀疑这个游戏就是个坑爹的存在!因为题目名字本身就是“真假难辨”然后我开始找别的入口点但都以失败告终。
整理下思路回到这个游戏,看看源代码发现游戏本身全部都是依靠agint1.js来控制的,包括人物的血量,移动速度,小怪的血量(尼玛小怪的血量要打20枪才死啊!玩到后面四五个小怪疯了一样扑过来怎么玩!)在代码里搜一下life关键字,果然发现了受伤害掉血的函数:
player.prototype.hurt=function(){
var now=(new Date()).getTime();
var floorY=this.y+this.height;
if(now-this.lastHurtTime>=this.hurtDuration){
this.life--; //关键在这里,把life--改成life++ 小怪撞到你就加血了,蛤蛤~
if(isToLeft(this)){
this.setCurrentAnimation("playerHurtLeft");
}
else if(isToRight(this)){
this.setCurrentAnimation("playerHurtRight");
}
this.index(0);
this.isHurt=true;
if(this.life<=0){
this.die();
}
this.y=floorY-this.height;
this.lastHurtTime=now;
}
if(cnGame.collision.col_Between_Rects(this.player.getRect(),this.end.getRect())){
if(this.deadghost == 10){
this.key = authnum(this.key, this.deadghost);
alert("The Key is:" + this.key);
}
else{
alert("once again!");
}
cnGame.loop.end();
return;
}
update:function(duration){
if(cnGame.collision.col_Between_Rects(this.player.getRect(),this.end.getRect())){
if(1){
this.key = authnum(this.key, 10);
alert("The Key is:" + this.key);
}
else{
alert("once again!");
}
cnGame.loop.end();
return;
}
最后有的同学可能会问为什么不在chrome里的console功能直接运行authnum函数得到答案呢?因为key是和整个游戏关联的,具体的方法没有细看,但是能肯定的是要通过口算得到key的值是要花一点功夫的,还不如直接作弊打通关一轮游戏来得快。蛤蛤
评论57次
真心涨姿势了
卡到游xi那块儿过不去了,js也没仔细看
叼啊。。。。。。
请问楼主一般是拿什么改JS比较方便呢?有没一款软件可以禁止页面的某个JS文件或者修改调用之类的。
chrome然后F12,选中你要改的js修改好后ctrl+s保存就好了
IE下呢?我现在有个环境应该是必须IE才可以。有什么办法吗?因为我那个环境需要装个activeX插件,我想谷歌浏览器应该装不了吧。
IE下有开发人员工具箱。一样有快捷键。debug这些个工具很多的。
其实我觉得adnin admin这个真是太亮了。。。其他牛逼的绕过都被这个亮光掩盖下去了。。原来是admin啊。。搞得我那么兴奋。。
囧。。。我没注意看我的原文。是笔误,是admin admin
原来只是admin,我就说楼主怎么会想到adnin。
原来是笔误呀,我以为真像阁下所说不是弱口令。看来歪打正着,我又学了一招。
哈哈哈,admin admin 亮瞎…… 等会儿去试试这BCTF
其实我觉得adnin admin这个真是太亮了。。。其他牛逼的绕过都被这个亮光掩盖下去了。。原来是admin啊。。搞得我那么兴奋。。
囧。。。我没注意看我的原文。是笔误,是admin admin
原来只是admin,我就说楼主怎么会想到adnin。
涨姿势了,不错的帖子
真逗, admin 那点 就不是人家考验的目的,
其实我觉得adnin admin这个真是太亮了。。。其他牛逼的绕过都被这个亮光掩盖下去了。。原来是admin啊。。搞得我那么兴奋。。
囧。。。我没注意看我的原文。是笔误,是admin admin
楼主应该是笔误,应该是admin admin。 如果真是adnin,谁能猜到?
囧。。。确实是笔误,已经改好了。。
表示是试Alice。。。Alice508。。。都没事出来,然后就放弃了,现在想来真心悔恨啊。。。
楼主应该是笔误,应该是admin admin。 如果真是adnin,谁能猜到?
好吧 我也是从别人哪里看到的
请问楼主一般是拿什么改JS比较方便呢?有没一款软件可以禁止页面的某个JS文件或者修改调用之类的。
我到xi望你说下其中奥妙,我想仔细体会!图文并茂的更好,方便我学xi!谢谢
你想啊,谁会尝试adnin这个用户?至少我是不会。。我的弱口令字典里都没这一条呢。
请问楼主一般是拿什么改JS比较方便呢?有没一款软件可以禁止页面的某个JS文件或者修改调用之类的。
chrome然后F12,选中你要改的js修改好后ctrl+s保存就好了
IE下呢?我现在有个环境应该是必须IE才可以。有什么办法吗?因为我那个环境需要装个activeX插件,我想谷歌浏览器应该装不了吧。
ie下的不清楚呢,我已经摒弃ie了。。。
1、表示改属性得到的key是对的?2、deadghost 是死去的僵尸。。。 必须全部杀死才能得到key
我一个僵尸都没杀死,然后直接冲到终点,得到的key提交就过关了。。。deadhost是固定值,我第二段代码就是把这个改成了10的哦
this.key += newGhost.gh;this.key += "%"+this.player.pe;this.pe = authp(this.moveSpeed, this.life);this.key = ""this.deadghost = 0;if(this.deadghost == 10)key的计算是中和参数进行计算 杀死10个僵尸 僵尸和玩家属性(authp(this.moveSpeed, this.life);)不变 才是正确的key全部10个zombie 无属性修改也能通关 为了轻松this.shootDuration=10;啪啪啪的过 嘿嘿html5游xi真好玩呢 改js就能作弊
HTML5的页游是以后的趋势啊~
多谢提供思路啊,太 难辨了
+1