DASCTF X CBCTF 2022 九月挑战赛 dino3d
本文最后更新于:2024年10月26日 晚上
DASCTF X CBCTF 2022 九月挑战赛 dino3d
启动环境之后,玩一会,进行抓包:
得到 score 分数和 checkcode,因为要玩到 1000000 分,所以直接修改分数 score 为目标分数发出看看:
看来行不通,可能还要伪造 checkcode 和 tm 时间戳。
f12 查看 js 代码,ctrl+f 搜索 checkcode,找到定义:
这里这个 salt 并不知道是什么,还需要查看代码分析。
知道定义之后,再查看另外两个搜索结果:
判断关键信息:
根据抓包结果,我们知道数据格式是:
所以可以判定这里的 e 是分数,那么这个 md5 () 函数里面的 t 又是什么?
到这里就进展不下去了,只能再去找找这个 salt,因为根据定义(或者说赋值语句)中的 checkcode = "xxx"+salt 来看,这个 salt 可能就是 t
搜索 salt 发现赋值语句:
此外并未搜索到其他新的跟 salt 有关的语句了。
那么我们就要验证一下这个 t 是不是就是 salt 了。验证的方法也很简单,直接 md5 (分数 + salt) 然后跟我们抓包的结果进行比对即可。
抓包结果:
md5 加密结果:
拼接加密结果和抓包结果的 checkcode 相同。这样就能伪造 checkcode 了
由于我们要达到目标分才能拿到 flag,那么先直接将目标 checkcode 写出
score
时间戳的话,直接通过在线网站查询然后写一个未来时间的值,等到了那个值同一时间将包发出即可。(考虑网络延迟,可能要稍微快一点点将包发出)
时间戳转换网址:https://shijianchuo.net/
返回查看就能得到 flag 了
DASCTF X CBCTF 2022 九月挑战赛 dino3d
https://4rozen.github.io/archives/WP/29897.html