• 126阅读
  • 0回复

《龙武2》任务拾取漏洞分析 [复制链接]

上一主题 下一主题
离线任鸟飞
 

微信公众号:任鸟飞逆向

很多游戏漏洞都是因为协议篡改导致的,而有些游戏因为逻辑的不完善,导致在外部的一些功能函数调用时也会出现漏洞。前些天接触到了一款网络游戏,并不是很热门,不过分析数据发现也有些较为复杂的地方。
在分析拾取任务物品时无意间发现了可以远程拾取,甚至不在遍历范围也能拾取的漏洞。
加载OD,跳转到了明文封包的函数头部,在拾取物品是断下,断到一个长度为B8的包(经过点击不同的任务物品,发现这个长度并不是固定的)。这样的一个封包内部有很多的参数,如果一一去分析的话是很麻烦的,于是我尝试着调用外层的功能函数。(如图)
返回的前几层函数的参数都是结构体,和封包的结构差不多,所以多返回了几层,经过逐层的尝试,最终定位到了如图所示的位置,并尝试调用(如图)
这个函数有5个参数,其中3个立即数,1个常量,还有一个是结构体,这个结构体虽然看起来乱糟糟的,可是如果用ASCII查看就会发现,其实这是一个较长的字串(如图)
经过多次测试发现前面的0x32个字节是固定的,后面的若干为数字是随着任务物品变化的。我们利用计算器将十进制转换成十六进制后发现这些数字还是很有特点的(如图)
首先想到的就是在物品对象中查找,看有哪些偏移的数值符合这个结果,很快在物品对象+10和+14的偏移出发现这样的数值,我把他们成为物品的ID1和ID2,ID1+ID2*0x100000000结果转化为10进制便是我们要的结果(如图)
然后我们通过代码注入器来调用,调用成功了,而且在很远的地方都能调用成功,这说明服务器对于这里的判断并不严谨,缺少了距离的判断,人物视野的判断等等。
对于任务物品是如此,那对于其他的地面物品是否如此呢?如果对草药和矿产也能达到如此的效果,那这个漏洞对于游戏的危害就不言而喻了。

快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个