当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-04488

漏洞标题:腾讯3366小游戏站算法被破解

相关厂商:腾讯

漏洞作者: only_guest

提交时间:2012-02-14 04:04

修复时间:2012-03-30 04:05

公开时间:2012-03-30 04:05

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-02-14: 细节已通知厂商并且等待厂商处理中
2012-02-14: 厂商已经确认,细节仅向厂商公开
2012-02-24: 细节向核心白帽子及相关领域专家公开
2012-03-05: 细节向普通白帽子公开
2012-03-15: 细节向实习白帽子公开
2012-03-30: 细节向公众公开

简要描述:

对于这样一个网站来说.积分算法被破解.就等于可以随意修改自己的分数.严重程度可想而知.

详细说明:

某日和我家程序员一起出差去做一个项目.然后夜里俩人打赌,谁先破解出来3366的算法,输的人第二天就要请胜利者足疗.于是乎便有了下面的故事.最终的结果是我家伟大的程序员取得了整场比赛的胜利!恭喜她,她就是verkey!!!!!
好,下面我来分析下整个算法的破解过程.
我在3366.com上选取了一款玩的人最多的积分游戏.
名字叫做彩色砖块,由于我水平太差,第一盘只得了31分,如下图


1.对上图数据抓包得到以下内容
qzversion=0&platform=1&key=bgvbapy1c89f901d0cdf89334b994e429c0100992e3b90692abe6fadd&submit=true&uin=2443199410&score=31&act=set&pid=1000132
可以看到分数为31分,key值为bgvbapy1c89f901d0cdf89334b994e429c0100992e3b90692abe6fadd
2.去掉这个key值的后48位
得到bgvbapy1c
3、剩余key值的第一位:
如果是a,则从第2位开始计算。
如果是b,则从第3位开始计算。
....依次类推。
对应如下:
a-2
b-3
c-4
d-5
e-6
f-7
.....
该key的第一位为b,所以从第3位开始计算,第3位为v.
3、计算剩余key的长度,按照如下对应关系,取有效计算范围。
如剩余key值长度为9,那么取1位计算。
如剩余key值长度为10,那么取2位计算。
如剩余key值长度为11,那么取3位计算。
如剩余key值长度为12,那么取4位计算。
.....
剩余的key值的长度为9,那么从第3位"v"开始,取1位,即"v"。
4、计算"v"的值,怎么计算呢?
其实分数的算法为36进制,0-9,a-z等36个数字字符构成如下对应关系:
0-0
1-1
2-2
3-3
4-4
5-5
6-6
7-7
8-8
9-9
a-10
b-11
c-12
d-13
e-14
f-15
g-16
h-17
i-18
j-19
k-20
l-21
m-22
n-23
o-24
p-25
q-26
r-27
s-28
t-29
u-30
v-31
w-32
x-33
y-34
z-35
.....
从z之后,再往下推,可得到:
10 36
11 37
12 38
13 39
14 40
15 41
16 42
17 43
18 44
19 45
1a 46
1b 47
1c 48
1d 49
1e 50
1f 51
1g 52
1h 53
1i 54
1j 55
1k 56
1l 57
1m 58
1n 59
1o 60
1p 61
1q 62
1r 63
1s 64
1t 65
1u 66
1v 67
1w 68
1x 69
1y 70
1z 71
由上得知v等于31
那么更大一点的数字呢?
比如说"1a"这样的值呢?
这样推导太麻烦,怎么用公式进行计算呢?
其实很简单,看如下示例:
1a=1*36+a=36+10=46
再看几个例子相信你就会推导了:
9位长度的key:
ad5x7lsyb 1d79f349cc25551adff77cbdf5768509acf99812b656119c
计算:d=13
c1imrwe0d 36443325bec5f7f4f1b0b56b04804bee90f25ecf931c2c08
计算:m=22
10位长度的key:
a3dfcfdqvc 36443325bec5f7f4f1b0b56b04804bee90f25ecf931c2c08
计算:3d=3*36+d=108+13=121
b53h20htmd c829da8e21bc82ea9b964a6094bb7d92f9f7f50aa04e5fc7
计算:3h=3*36+h=108+17=125
11位长度的key:
b38p4nvtb6e eec693296a4a49131ed70461f5e354f2018f6cf5ccb8957e
计算:8p4=((8*36)+p)*36+4=313*36+4=11272
a9662iq0u4d eec693296a4a49131ed70461f5e354f2018f6cf5ccb8957e
计算:966=((9*36)+6)*36+6=(324+6)*36+6=11880+6=11886
依次类推。。。。
截断.修改数据包就可以改你的游戏分数了.
但是貌似key的长度不能变.
破解算法无恶意,只做研究.发出来大家学习下.
另外确实想要几只腾讯的新版公仔了...之前送的那只被领导收留了...

漏洞证明:


http://www.3366.com/game/1000190.shtml
弹粉笔
欢迎挑战

修复方案:

修改得分机制吧.再复杂一点.

版权声明:转载请注明来源 only_guest@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2012-02-14 21:12

厂商回复:

thx

最新状态:

暂无


漏洞评价:

评论

  1. 2012-02-14 04:07 | only_guest 认证白帽子 ( 普通白帽子 | Rank:800 漏洞数:75 | PKAV技术宅社区-专心做技术.PKAV已经暂停...)

    看样子3366.com应该停业整顿一天了..我错了...

  2. 2012-02-14 04:10 | only_guest 认证白帽子 ( 普通白帽子 | Rank:800 漏洞数:75 | PKAV技术宅社区-专心做技术.PKAV已经暂停...)

    情人节都去抱妹子吧..我抱着电脑过.

  3. 2012-02-14 09:07 | 128bit ( 实习白帽子 | Rank:74 漏洞数:7 | May the SHELL be with you)

    8?

  4. 2012-02-14 10:48 | livers ( 实习白帽子 | Rank:94 漏洞数:6 | mov esp,0jmp espcrash.....)

    @only_guest 这是什么命

  5. 2012-02-14 10:54 | shine 认证白帽子 ( 普通白帽子 | Rank:831 漏洞数:77 | coder)

    关注楼主与电子设备的基友关系!

  6. 2012-02-14 11:09 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    买个大头显示器好好抱抱。哇哈哈

  7. 2012-02-14 12:40 | horseluke ( 普通白帽子 | Rank:116 漏洞数:18 | Realize the dream in earnest.)

    @only_guest 你害得多少程序员没法陪伴女友过节日,恐怕要造出多少杯具,罪过罪过...

  8. 2012-02-14 12:59 | only_guest 认证白帽子 ( 普通白帽子 | Rank:800 漏洞数:75 | PKAV技术宅社区-专心做技术.PKAV已经暂停...)

    让你们鲜花...让你们红酒...让你们烛光...!!!!!

  9. 2012-02-14 15:09 | TwoSpring ( 路人 | Rank:8 漏洞数:1 | 游走于道德与随性之间……)

    Happy情人节,Happy Gay!

  10. 2012-02-14 16:41 | popok ( 普通白帽子 | Rank:117 漏洞数:24 | nothing)

    GAY。。。

  11. 2012-02-14 21:48 | Valo洛洛 ( 普通白帽子 | Rank:458 漏洞数:52 | 。)

    @popok 嗯哼

  12. 2012-03-30 09:04 | Xhm1n9 ( 实习白帽子 | Rank:57 漏洞数:13 | bug)

    求科普啊,算法你是怎么知道的?

  13. 2012-03-30 11:31 | livers ( 实习白帽子 | Rank:94 漏洞数:6 | mov esp,0jmp espcrash.....)

    死GAY

  14. 2012-03-30 13:07 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    = = 我觉得,这个只要把FLASH反编一下, 里面就有算法了吧?。为什么还要自己推。

  15. 2012-03-30 13:13 | Xhm1n9 ( 实习白帽子 | Rank:57 漏洞数:13 | bug)

    这个逆推的思路牛比,求科普

  16. 2012-03-30 13:14 | Xhm1n9 ( 实习白帽子 | Rank:57 漏洞数:13 | bug)

    不会是像gainover说的FLASH反编一下吧?

  17. 2012-03-30 13:22 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    这种FLASH小游戏提交积分, 被破解本身就是不可避免的,加密算法肯定是在FLASH源码里有的。 如果FLASH的源码能够得到很好的保护,让其它人无法看到其中的加密算法,才有可能减轻这种现状么,否则,算法怎么换都没用。不过楼主这种都能逆推,挺牛X..

  18. 2012-03-30 14:29 | 笨猪 ( 实习白帽子 | Rank:56 漏洞数:13 | Jarett|最近忙,洞发得少。。)

    这是逆向的结果呢还是半猜?

  19. 2012-03-30 15:09 | popok ( 普通白帽子 | Rank:117 漏洞数:24 | nothing)

    @笨猪 如果是单纯靠直觉猜的,我就跪下了!

  20. 2012-03-30 15:25 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @popok 同跪

  21. 2012-03-30 15:51 | only_guest 认证白帽子 ( 普通白帽子 | Rank:800 漏洞数:75 | PKAV技术宅社区-专心做技术.PKAV已经暂停...)

    @xsser 膜拜吧....呵呵程序猿!白帽子!只要敢想!没什么不可能的!

  22. 2012-03-30 17:33 | popok ( 普通白帽子 | Rank:117 漏洞数:24 | nothing)

    @xsser @only_guest 看来这想象能力可以达到异想天开的级别了,受小弟一拜!

  23. 2012-03-30 18:18 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    @only_guest 破300了。我擦。

  24. 2012-03-30 18:43 | only_guest 认证白帽子 ( 普通白帽子 | Rank:800 漏洞数:75 | PKAV技术宅社区-专心做技术.PKAV已经暂停...)

    @zeracker 肿么了.这是要刷rank么?嘿嘿.最近想发些有意思的东西.

  25. 2012-03-30 18:54 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    @only_guest 继续围观。哈哈,发神马有意思的东西

  26. 2012-03-30 21:42 | only_guest 认证白帽子 ( 普通白帽子 | Rank:800 漏洞数:75 | PKAV技术宅社区-专心做技术.PKAV已经暂停...)

    @zeracker 你猜`猜到奖励充气娃娃一个.

  27. 2012-03-30 21:53 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    @only_guest O(∩_∩)O哈哈~。坐等,我要松岛枫的娃娃,

  28. 2012-03-30 22:29 | only_guest 认证白帽子 ( 普通白帽子 | Rank:800 漏洞数:75 | PKAV技术宅社区-专心做技术.PKAV已经暂停...)

    @zeracker 松岛枫?我只有空空的....

  29. 2012-03-30 22:30 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    @only_guest 现在要搞就玩大的了。O(∩_∩)O哈哈哈~ 苍井空不务正业,拍MV去了。

  30. 2012-05-06 20:19 | taylortai ( 路人 | Rank:0 漏洞数:2 | 三分钟热度)

    绝对膜拜啊 @only_guest 你怎么就知道去掉多少位呢

  31. 2012-05-07 18:58 | only_guest 认证白帽子 ( 普通白帽子 | Rank:800 漏洞数:75 | PKAV技术宅社区-专心做技术.PKAV已经暂停...)

    @taylortai 算啊...愁

  32. 2012-11-11 20:17 | shack2 ( 普通白帽子 | Rank:470 漏洞数:71 | QQ:1341413415 一个热爱编程(Java),热爱网...)

    膜拜了

  33. 2012-12-19 14:54 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:42 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    这帖子我看了4遍了,看一次跪一次,真心牛X了。。。。

  34. 2013-11-04 11:20 | 大亮 ( 普通白帽子 | Rank:306 漏洞数:65 | 慢慢挖洞)

    @only_guest,你好厉害啊,求带我啊

  35. 2013-11-06 16:14 | sysALong ( 路人 | Rank:19 漏洞数:5 | 电脑里的AV片 永远 和 电脑旁的卫生纸 成 ...)

    我真心不知道看多少遍了,太牛性了。。。 膜拜。。。

  36. 2014-06-21 12:42 | 浅兮 ( 实习白帽子 | Rank:70 漏洞数:30 )

    数学怎这么好啊