游戏类的,一般都是当分数高到一定程度时,就可以过关
开启bp进行抓包看看
发现:当我们游戏结束时,网页会发送一个包
点击看看
尝试直接修改 score的值
很明显,是不行的。说明有其他的参数来验证分数的真实性;这个参数可能是 sign或者可能在 cookie里。
解决:多次发送包(多次玩游戏,保持不同的值),对比不同的值
很明显,当分数不同时不同的包差距在于 score和 sign
对比sign发现 sign是由 zM + **** + == 构成
将第一个包中符合条件的四位数拿去cmd5解密,发现,这个就是我们的分数
因此确定了 sign = zM + base64(score) + ==
因此 我们要改分数,就需要将 score = 999999 并且sign = zM+ base64(999999) + ==
base64(999999) 这个具体的值可以去cmd5进行加密
数据包如下
成功拿到flag
总结:
1.游戏类的一般都是通过修改分数来的,要嘛改高(999999) ,要嘛改低(-999999)
2.控制分数的参数可能不止一个,如果有加密的就得尝试解密。一般就多试几次,找到因分数不同而改变的参数,然后对该参数进行分析