【bugku】 web_game1_来啊盖楼啊

萌新第一次写writeup,如有不足请大佬指正!本人也在学习中进步!

【bugku】 web_game1_来啊盖楼啊_第1张图片

首先是这么一个网页小游戏,有点意思

一般来说这种题可以通过玩游戏直接得到flag(经验与直觉,今年蓝帽杯的第一道web题历历在目),但要是出题人头铁要你得分99999999999999分(那到不至于),这就真的不好办,毕竟没办法大力出奇迹。

然后我们先试玩一下游戏。

【bugku】 web_game1_来啊盖楼啊_第2张图片

好吧其实分数并不重要,因为你玩过几次后就会发现就算是达到预定分数获取flag也并非你人力所能及。

在提交分数页面用bp抓包或者按F12查看源代码。

【bugku】 web_game1_来啊盖楼啊_第3张图片

找sign,这里数据包太多了在搜索栏里面找。【bugku】 web_game1_来啊盖楼啊_第4张图片

点开唯一的一个带sign的get包,在右边继续搜索sign,找到消息头

【bugku】 web_game1_来啊盖楼啊_第5张图片

可以看到右侧的 sign:zMNTA=== ,

sign为 zM + base64编码部分 + == ,

所以我们取中间的 NTA= ,用base64解码一下,果不其然,50,正好是我们玩游戏得到的分数。因此这里的sign值就是我们游戏结束后向服务器提交的分数。

可以想见,如果我们提交的分数达到了获取flag的阀值就可以获取flag。

因此要在这里做手脚。

右键左边的get包,复制网址,新建网页粘贴看一下。【bugku】 web_game1_来啊盖楼啊_第6张图片

 看见: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编码就好了

【bugku】 web_game1_来啊盖楼啊_第7张图片

flag就出来了。

后记:因为本人也是萌新,所以肯定有不足之处还请大佬指点!

如果也有和我一样的萌新也可以和我来一起学习!不喜勿喷谢谢!

你可能感兴趣的:(bugku,writeup,web)