[GDOUCTF 2023]hate eat snake

2023-12-30 18:28:48

[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 基础做起来才会更轻松一点。

文章来源:https://blog.csdn.net/m0_73612768/article/details/135307333
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。