var sign = Base64.encode(score.toString()); xmlhttp.open("GET","score.php?score="+score+"&ip="+ppp+"&sign="+sign,true);
1、点击开始游戏,让分数变动一下, 2、打开控制台,输入score = 99999,回车 3、然后再输入overShowOver(),回车 3、接着点击network,看最后一个请求core.php?score=99999&ip=xxx的响应,就能看到flag
flag{7e522ebdf32bc4a055d75c9d140fdf35}
看了一下js脚本,发现一个index,里面有score.php发送请求的源码 所以这里很快就出payload了,但是这里很疑惑的点是sign前面需要加两个空格字符。后来又看了下base.js,发现会对字符执行往后读两个字符。 所以大家可以试下,不管前面两个字符是啥,只要2个字符后是base64加密的score,都可以
/score.php?score=99999&ip=你的IP&sign=zMOTk5OTk==
flag{f55ad37c74bf25ec1f972c30845de181}
sign= zM + 分数base64加密 + ==
flag{04d55117ddc08b53eb2ad302179cfc17}
我发现了两种破解方法:第一种就是sign的值使用游戏里面的Base64.encode,然后分数用25的倍数破解,第120次,也就是3000分的时候拿到。第二种是这样的形式:score=3000,sign=b'MzAwMA==',注意sign是b'MzAwMA==',MzAwMA== 就是3000的正常base64值,我是误打误撞拿到的,为什么能生效,我没想明白,求大佬解惑。
...
评论
tfios 3天前
举报
var sign = Base64.encode(score.toString()); xmlhttp.open("GET","score.php?score="+score+"&ip="+ppp+"&sign="+sign,true);
Zcentury 6天前
举报
1、点击开始游戏,让分数变动一下, 2、打开控制台,输入score = 99999,回车 3、然后再输入overShowOver(),回车 3、接着点击network,看最后一个请求core.php?score=99999&ip=xxx的响应,就能看到flag
mbda03 1月前
举报
flag{7e522ebdf32bc4a055d75c9d140fdf35}
xshzgjshpy 1月前
举报
看了一下js脚本,发现一个index,里面有score.php发送请求的源码 所以这里很快就出payload了,但是这里很疑惑的点是sign前面需要加两个空格字符。后来又看了下base.js,发现会对字符执行往后读两个字符。 所以大家可以试下,不管前面两个字符是啥,只要2个字符后是base64加密的score,都可以
Agoin 1月前
举报
/score.php?score=99999&ip=你的IP&sign=zMOTk5OTk==
dogmaii 1月前
举报
flag{f55ad37c74bf25ec1f972c30845de181}
33555 1月前
举报
flag{f55ad37c74bf25ec1f972c30845de181}
welltian 1月前
举报
sign= zM + 分数base64加密 + ==
bugku111rao 2月前
举报
flag{04d55117ddc08b53eb2ad302179cfc17}
CDCcc123 2月前
举报
我发现了两种破解方法:第一种就是sign的值使用游戏里面的Base64.encode,然后分数用25的倍数破解,第120次,也就是3000分的时候拿到。第二种是这样的形式:score=3000,sign=b'MzAwMA==',注意sign是b'MzAwMA==',MzAwMA== 就是3000的正常base64值,我是误打误撞拿到的,为什么能生效,我没想明白,求大佬解惑。