萌新第一次写writeup,如有不足请大佬指正!本人也在学习中进步!
首先是这么一个网页小游戏,有点意思
一般来说这种题可以通过玩游戏直接得到flag(经验与直觉,今年蓝帽杯的第一道web题历历在目),但要是出题人头铁要你得分99999999999999分(那到不至于),这就真的不好办,毕竟没办法大力出奇迹。
然后我们先试玩一下游戏。
好吧其实分数并不重要,因为你玩过几次后就会发现就算是达到预定分数获取flag也并非你人力所能及。
在提交分数页面用bp抓包或者按F12查看源代码。
找sign,这里数据包太多了在搜索栏里面找。
点开唯一的一个带sign的get包,在右边继续搜索sign,找到消息头
可以看到右侧的 sign:zMNTA=== ,
sign为 zM + base64编码部分 + == ,
所以我们取中间的 NTA= ,用base64解码一下,果不其然,50,正好是我们玩游戏得到的分数。因此这里的sign值就是我们游戏结束后向服务器提交的分数。
可以想见,如果我们提交的分数达到了获取flag的阀值就可以获取flag。
因此要在这里做手脚。
右键左边的get包,复制网址,新建网页粘贴看一下。
看见:http://114.67.246.176:13124/score.php?score=50&ip=125.62.3.97&sign=zMNTA===
访问网站的score.php文件(?)(此处解读存疑,在下php没学好,麻烦大佬指点一下万分感谢)
score=50和sign=zMNTA===处分别把等号后面的改成99999和它的base64编码就好了
flag就出来了。
后记:因为本人也是萌新,所以肯定有不足之处还请大佬指点!
如果也有和我一样的萌新也可以和我来一起学习!不喜勿喷谢谢!