首页
社区
课程
招聘
[原创]口袋西游无限满血漏洞分析和利用
发表于: 2019-5-19 10:08 9713

[原创]口袋西游无限满血漏洞分析和利用

2019-5-19 10:08
9713

在武汉科锐学完三阶段了,找个游戏练手无意间发现这个漏洞,和大家交流下。


首先介绍几个概念:

网络游戏的变态功能的一般实现方式

1:本地数据

某些网络游戏将人物的血量,攻击力,坐标,这些重要数据存在游戏本地的客户端,当然可能会有一些加密,这样的游戏可以直接修改内存实现无敌,秒杀,瞬移等变态功能。当然这种网络游戏并不多见,大多数游戏重要数据都存放在服务器,我们修改内存看到的只是假象。


2:伪造封包

既然是网络游戏,就肯定要与服务器进行网络通信,比如我们在游戏里使用技能,就会向服务器发送使用技能封包,喊话就回向服务器发送喊话封包。大多数封包的漏洞都是服务器判断不严谨或者有一些逻辑漏洞造成的,比如如果游戏服务器并没有对技能冷却时间进行判断,我们直接一直向服务器发送使用技能的封包就可以实现技能无CD的效果,有些网游怪物死亡会向服务器发送怪物死亡的封包,那我们就可以伪造封包向服务器发送达到秒杀怪物的效果。某些射击网游,玩家朝着敌人射击时会发送一条封包,我们可以通过玩家和敌人坐标计算精确的值修改这些封包,就可以实现枪枪爆头等变态功能。还有些游戏刚进副本时会向服务器发送封包增加人物血量攻击力之类的,我们可以把这条封包找出来,调用游戏发包函数向服务器发送,也可能可以实现倍攻无敌等效果。

大多数网络游戏通过send或者WSASend发包函数向服务器发送封包,当然现在很多网络游戏可能会调用更底层的发包函数,或者一些其他处理,导致用od在这些函数上下断点并不会命中断点,这种情况我们不在赘述。


为什么要找明文发包call?因为我们在这些系统的发包函数下断点,断下看到的数据一般都是加密的 ,所以我们要找到游戏明文的发包函数才能方便分析封包内容。


我们今天讨论的是口袋西游的封包bug


我们先要找到游戏中的明文发包函数以及分析使用技能的封包内容

这个游戏的发包函数调用过程非常简单,简单可以概括为

功能CALL==》组包==》明文发包CALL==》加密等等==》send

我们可以在send头部下段,在游戏中 做相应的功能动作,断下时通过栈回朔就可以返回到明文发包call。

在send函数头部下断点,使用回城术技能,ctrl+f9几次来到了如图所示处:


这里只有使用技能才会断下,我们可以观察下这个call的参数


第一个参数是0x1C,应该是包长,第二个参数是包内容,我们可以把内容复制出来

29 00 45 00 00 00 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 42 A3 03 00

经过我们的对比分析,可以分析出

29 00//包头

45 00 00 00//技能ID

FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01//固定数据

01 42 A3 03 00//如果是选中怪物攻击的技能,这里就是怪物id,如果不需要选中怪物就攻击的,就是我们人物自己的id

技能封包分析完了,接下来就需要分析技能遍历,我们可以继续ctrl+f9几次找到技能call,技能call应该有个参数是技能id,分析技能id的来源可能就可以找到技能遍历


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-5-22 18:49 被小白鼠_897235编辑 ,原因:
上传的附件:
收藏
免费 3
支持
分享
最新回复 (19)
雪    币: 3226
活跃值: (399)
能力值: ( LV7,RANK:102 )
在线值:
发帖
回帖
粉丝
2
自己先坐个沙发!
2019-5-19 10:24
0
雪    币: 389
活跃值: (565)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
3
太难了放弃吧
2019-5-19 10:37
0
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
很好很强大
2019-5-19 10:49
0
雪    币: 12317
活跃值: (5073)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5

多谢楼主分享哟
2019-5-19 10:55
0
雪    币: 17
活跃值: (278)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
坐等数据过期 ... 建议 aobscan 这样以后再挖到这个贴 功能都还是可以用的
2019-5-19 11:21
0
雪    币: 9348
活跃值: (1825)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
PE下 数两行半
2019-5-19 17:59
0
雪    币: 6124
活跃值: (4651)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
8
这就是逻辑漏洞了,服务器没有判断人物角色是否拥有这个技能。不严谨造成的
2019-5-19 18:00
0
雪    币: 43
活跃值: (18)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
9
厉害了
2019-5-19 18:52
0
雪    币: 783
活跃值: (1121)
能力值: ( LV5,RANK:78 )
在线值:
发帖
回帖
粉丝
10
学习了.
2019-5-19 19:21
0
雪    币: 8989
活跃值: (6205)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
广海倒闭了都跑看雪了吗?
似乎看雪是不能指定名字哒,坐等被修改或被删除文章。
最后于 2019-5-20 07:03 被mudebug编辑 ,原因:
2019-5-20 07:01
0
雪    币: 83
活跃值: (1087)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
12
写得好
2019-5-21 09:44
0
雪    币: 8057
活跃值: (2625)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
13
太难了  放弃吧
2019-5-22 18:17
0
雪    币: 34
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
下载后,解压不了啊
2019-5-22 19:58
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
月饼要涨价咯      感谢大佬分享
2019-5-22 20:33
0
雪    币: 72
活跃值: (230)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
古老的游戏
2019-5-24 12:03
0
雪    币: 336
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
月饼的功劳,思路不错
2019-5-26 19:30
0
雪    币: 200
能力值: (RANK:0 )
在线值:
发帖
回帖
粉丝
18
这种思路 很早就用过,当年龙之谷也是这样的,1级小号可以 使用大保健和黑洞己能。写入己能ID即可。
很少有游戏会有这种漏洞。我只能说。差评
2019-5-29 11:56
0
雪    币: 183
活跃值: (2427)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
19
可以,学到了,这个游戏太老,我想问问楼主锐科咋样还行吧?
2019-6-7 15:51
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
客户端以为,把技能加载进来,在UI屏蔽了,就可以了. 服务器不做是否拥有技能判断.  应该是活动临时加的技能,后期更新,没有修改代码.
2019-10-12 21:26
0
游客
登录 | 注册 方可回帖
返回
//