NewStarCTF2023week2-游戏高手

js代码审计,定位到输出flag的地方

NewStarCTF2023week2-游戏高手_第1张图片

首先进行了一个条件判断,如果游戏分数大于100000,就会执行下面的代码块;

然后创建了一个 XMLHttpRequest 对象,用于向服务器下的/api.php发送 POST 请求;

后面代码用于处理 XMLHttpRequest 的状态变化,它等待请求完成并且状态码为 200 时,解析响应并弹出消息框显示;

再创建了一个对象 data,其中包含了游戏分数,然后使用 JSON.stringify(data) 将该对象转换为 JSON 格式的字符串,使用 xhr.send() 发送这个 JSON 字符串给服务器;

最后的代码用于重置游戏状态,将游戏分数重置为 0,将curPhase设置为PHASE_READY,并重新创建hero对象。

因此,这里只需要对score进行一个伪造即可,但是要注意json字符串格式 {"key":value},

即 {"score":gameScore}

构造payload:

post:{"score":100000}

直接在hackbar好像不行

NewStarCTF2023week2-游戏高手_第2张图片

 我们使用burpsuite抓包改包重发:

NewStarCTF2023week2-游戏高手_第3张图片

拿到 flag{9dc9eb25-f14d-46b8-9da5-7ef2781aa69d}

你可能感兴趣的:(web,CTF,游戏,js,json,web安全,代码审计,请求伪造)