[GDOUCTF 2023]hate eat snake

[GDOUCTF 2023]hate eat snake wp

一般说玩游戏的题答案在源码里,但是本题源码中没有任何跟 “flag” 或者 “ctf” 有关的信息。

页面如下:

在这里插入图片描述

唤出控制台

在此页面中 F12 调不出控制台(可能是在 js 代码中禁用了)。但其实还有两种方法可以唤出控制台,一是右键->检查。二是火狐浏览器右边的三横->更多工具->开发者工具。

一般来说这种题目给出 flag 的方式是通过 alert 函数弹窗。

直接搜索 alert :

在这里插入图片描述

只有一个 alert ,估计这就是 flag 了。

点下面的 { } 调一下格式:

在这里插入图片描述

稍微分析一下代码,需要满足 this['getScore']() 函数的返回值大于某个数才会触发 alert 。

搜索 getScore :

在这里插入图片描述

简单搜索一下,发现了 getScore 函数的定义,其返回值是 score 。那么思路已经很明确了,调试代码到此处,修改 score 的值,将它改为一个很大的数即可。

调试 js 代码:

84 行打断点;

刷新该页面;

空格键开始游戏;

在这里插入图片描述

此时代码已经运行到断点处。

控制台修改 score 变量的值:

在这里插入图片描述

修改为一个很大的数,回车,然后点三角形继续运行。

弹出 flag :

在这里插入图片描述

总结

本题还有许多种解法,但思路都大同小异:覆盖源代码属性的值或者部分源代码使之符合输出 flag 的条件。

最好还要有一定的 javascript 基础做起来才会更轻松一点。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值