一、原题:
二、步骤:
1.先打开Burp Suite,然后玩一轮游戏先:
2.查看游戏结束时该页面的Burp Suite抓包:
发现该URL中,socre=50,sign=zMNTA===
猜测zMNTA===为BASE64加密
3.对zMNTA为===进行BASE64解密:
未解密成功
4.查看游戏结束时该页面的源码:
发现上图红色框住的几段代码,的确是进行了Base64加密
var sign = Base64.encode(score.toString());
这行代码的作用:是将一个名为 score 的变量值进行 Base64 编码,并将结果存储在 sign 变量中
因此猜测是对score进行了Base64加密
5.对score进行Base64加密:
50的Base64加密为:NTA=
而sign为:zMNTA===
因此猜测sign是由zM、score的密文、==组成
6.构造新的URL:
①将score改为99999,对99999进行Base64加密:
score=99999
sign=zMOTk5OTk===
②新旧URL页面:
(1)旧的URL:
http://117.72.52.127:19903/score.php?score=50&ip=120.231.107.210&sign=zMNTA===
(2)新的URL:
http://117.72.52.127:19903/score.php?score=99999&ip=120.231.107.210&sign=zMOTk5OTk===
7.得到flag:flag{66437a570e2dae3446f1480344c982fb}
三、一些思路
该题是一个小游戏,游戏目的不就是要闯关成功吗?如何闯关成功呢?作者无任何提示,那么默认其分数需要达到一个上限值,也就是最高分。
如果选择跑脚本,就可以发现游戏分数达到3000即闯关成功。此处的99999远远超过3000,因此该分数也可视为闯关成功。
所以我们要对score进行修改,而在URL中,还发现了一个Base64加密,也与score息息相关。
故此题的关键点为:score,Base64
四、相关知识点: