点击题目链接,发现出现一个计分板页面,完成题目的条件是得分超过114514,但是FTP余额只有1024,故正常游戏无法获得flag。
使用F12并未发现有用的信息。同时在js代码中也未找到与score有关的参数名,这意味着我们不能通过代码审计的方式完成该题。
因为得分和物品数目都是整数,我们可以思考从整数溢出的方向测试:
将咖啡的购买数目设置为一个很大的数:
提交后发现弹出了信息 “你拿了9223372036854775807瓶咖啡,总计获得0分!”,发现数据确实溢出,而且物品数目的最大值:9223372036854775807
这时候,我们输入 999999...9999999
发现当前得分和FP余额被修改,同时弹出信息
再次使用9999...999,进行多次提交,直到弹出flag