漏洞概要
关注数(19)
关注此漏洞
漏洞标题: Easytalk垂直权限问题(逻辑漏洞可提权getshell)
提交时间: 2014-04-17 10:50
公开时间: 2014-07-16 10:50
漏洞类型: 设计缺陷/逻辑错误
危害等级: 高
自评Rank: 20
漏洞状态:
厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2014-04-17: 细节已通知厂商并且等待厂商处理中
2014-04-18: 厂商已经确认,细节仅向厂商公开
2014-04-21: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-06-12: 细节向核心白帽子及相关领域专家公开
2014-06-22: 细节向普通白帽子公开
2014-07-02: 细节向实习白帽子公开
2014-07-16: 细节向公众公开
简要描述:
Easytalk处理用户数据的时候未足够过滤,导致可以进行权限提升
详细说明:
晚上习惯性的打开代码分析分析函数,看到了这样一处
漏洞文件:
/Easytalk/Home/Lib/Action/GuideAction.class.php
漏洞代码,
$userdata=$_POST["user"];//获取用户提交的所有数据,然后进行了一些常规的检测之后,就执行了$user->where("user_id='".$this->my['user_id']."'")->data($userdata)->save();存入数据库了。
这样写的问题是,用户可以自己添加别的字段,而因为此cms管理员表跟普通用户表又在一个表里,(区分的标志是isadmin字段)因而可以造成权限提升
漏洞证明:
注册普通用户,然后来到设置向导里,拦截发送的请求
增加字段user%5Bisadmin%5D=1即可
查看结果
后台getshell不演示了,直接ucenter配置里添加一句话即可
getshell方法见
http://**.**.**.**/bugs/wooyun-2014-055812
修复方案:
对于获得的用户数据,我们应当这样,指定获得某个字段的值,
$data['nickname']=safe($_POST['user']['nickname']);然后进行save操作。还有将管理用户表跟普通用户表放在一起,很容易造成权限提升的问题,分开能避免很多。
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2014-04-18 16:14
厂商回复:
感谢,已经修复了
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
漏洞评价(共0人评价):
评价
-
2014-04-17 13:35 |
果冻好吃
( 路人 |
Rank:22 漏洞数:11 | 大学通知书下来那天,我迫不及待的用四百块...)
1
-
2014-07-16 10:54 |
铁蛋火车侠
( 普通白帽子 |
Rank:156 漏洞数:31 | Q群371620085 技术交流群 有漂亮妹纸!)
1
-
2014-07-16 11:43 |
Hero
( 普通白帽子 |
Rank:145 漏洞数:43 | 药药切克闹,充气娃娃迷幻药)
0
-
2014-07-16 13:59 |
zhxs
( 实习白帽子 |
Rank:69 漏洞数:26 | 不是你不行、只是路不平ฏ๎๎๎๎๎๎๎๎...)
0
-
2014-07-16 15:42 |
那个夏天骚年未老
( 路人 |
Rank:0 漏洞数:2 | 呵呵,呵,呵呵呵)
0