漏洞概要
关注数(24)
关注此漏洞
漏洞标题:开源微博EasyTalk任意用户密码修改
提交时间:2014-02-17 11:05
修复时间:2014-05-18 11:05
公开时间:2014-05-18 11:05
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2014-02-17: 细节已通知厂商并且等待厂商处理中
2014-02-17: 厂商已经确认,细节仅向厂商公开
2014-02-20: 细节向第三方安全合作伙伴开放
2014-04-13: 细节向核心白帽子及相关领域专家公开
2014-04-23: 细节向普通白帽子公开
2014-05-03: 细节向实习白帽子公开
2014-05-18: 细节向公众公开
简要描述:
开源微博系统EasyTalk任意用户密码修改,包括管理员 而且不用登陆,非常强大...
(其实只是一个小小的设计缺陷):-)
详细说明:
#1 CMS介绍
EasyTalk是国内首款多用户PHP+Mysql开源微博系统,支持网页、手机Wap、手机短信、QQ、Gtalk、飞信等多种方式发表或接收信息,EasyTalk全面符合国人的上网习惯,真正轻量级架构,使得使用者上手容易,管理者安装部署容易、管理便捷。EasyTalk功能强大,便捷的插件系统,可二次开发性高,人性化的模板自定义功能大幅提高了用户的体验,因此EasyTalk相比国内其他微博系统有绝对的优势!
#2 漏洞分析
我们先来看下用户找回密码的连接
这里重点留意urldata参数,很显然是Base64加密,我们把它解密
第一感觉,90%有问题...
接下来,我们看该处的源代码,都是怎样实现的
/Home/Lib/Action/IndexAction.class.php 445行checkreset()函数
$_REQUEST 方式接收urldata参数,Base64解码后直接带入了数据库查询,我的天 这究竟是神马设计?
既然它毫不客气的将参数带入了数据库,那么我肯定也是不会客气
从程序可以猜测,更新用户密码的SQL 类似如下
于是我们利用parse_str变量覆盖,可以提交urldata参数为
就可以修改管理员(管理的user_id为1)的密码
同理,我们修改user_id为其他用户的id,即可修改其密码
漏洞证明:
修复方案:
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2014-02-17 11:15
厂商回复:
正在修复
最新状态:
暂无
漏洞评价:
评论
-
2014-02-17 11:09 |
xfkxfk ( 核心白帽子 | Rank:2179 漏洞数:338 | 呵呵!)
-
2014-02-17 11:12 |
felixk3y ( 普通白帽子 | Rank:523 漏洞数:41 | php python jsp)
@xfkxfk 这个系统有两个地方都可以重置,这只是其中一个
-
2014-02-17 11:23 |
felixk3y ( 普通白帽子 | Rank:523 漏洞数:41 | php python jsp)
-
2014-02-17 11:24 |
xfkxfk ( 核心白帽子 | Rank:2179 漏洞数:338 | 呵呵!)
-
2014-02-17 11:25 |
xfkxfk ( 核心白帽子 | Rank:2179 漏洞数:338 | 呵呵!)
-
2014-02-17 11:31 |
felixk3y ( 普通白帽子 | Rank:523 漏洞数:41 | php python jsp)