web-2-web71 通关这个游戏就可以拿到你想要的flag

flag{java3cr1qtG3}

打开网页出现如下图片:

如果弹球没被拦截,则判定游戏失败;

经检查,游戏失败并未发送数据包,并且cookie之类的没有隐藏flag,猜测是通过后本地显示flag,查找网页源代码,看看能不能找到通关游戏的代码:

点进game.js,发现gameover函数:

接着又发现_f__()函数中设定了一串数字,后面又用fillText填充,猜测这就是flag:

接下来尝试翻译下面这段数字:

var _f_s1 = [5*10+g.state_GAMEOVER,60,49,5*10+g.state_UPDATE,75,58,49,70,49,3,51,66,1,65,68,23,g.state_STOP,77]
    for ( var i = 0,l = 18; i < l; i++ ){g.string+=String.fromCharCode(_f_s1[i]+g.state_STRING)}
    this.context.fillText(g.string, 308, 226)

通过前面的代码可知:

state: 1,                                                     
      state_START: 1,                                               
      state_RUNNING: 2,                                             
      state_STOP: 3,                                                
      state_GAMEOVER: 4,                                            
      state_UPDATE: 5,                                              
      state_STRING:48,

所以:

5*10+g.state_GAMEOVER=54

5*10+g.state_UPDATE=55

g.state_STOP=3

而这一串数字则是54,60,49,55,75,58,49,70,49,3,51,66,1,65,68,23,3,77

后面还将这一串数字增加g.state_STRING=48

g.string+=String.fromCharCode(_f_s1[i]+g.state_STRING)

所以这一串数字还需要加上48,猜测是ASCALL码,尝试编写python代码并将这一串数字输出:

具体代码如下:

a = [54, 60, 49, 55, 75, 58, 49, 70, 49, 3, 51, 66, 1, 65, 68, 23, 3, 77]
for i in a:
    k = i + 48
    print(chr(k), end='')

运行输出:

得到flag:

flag{java3cr1qtG3}

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白鹿依海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值