[GDOUCTF 2023]hate eat snake

[GDOUCTF 2023]hate eat snake wp

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

页面如下:

[GDOUCTF 2023]hate eat snake_第1张图片

唤出控制台

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

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

直接搜索 alert :

[GDOUCTF 2023]hate eat snake_第2张图片

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

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

[GDOUCTF 2023]hate eat snake_第3张图片

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

搜索 getScore :

[GDOUCTF 2023]hate eat snake_第4张图片

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

调试 js 代码:

84 行打断点;

刷新该页面;

空格键开始游戏;

[GDOUCTF 2023]hate eat snake_第5张图片

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

控制台修改 score 变量的值:

[GDOUCTF 2023]hate eat snake_第6张图片

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

弹出 flag :

[GDOUCTF 2023]hate eat snake_第7张图片

总结

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

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

你可能感兴趣的:(ctf,javascript,web安全,网络安全)