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

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

缺陷编号:wooyun-2014-051203

漏洞标题:EasyTalk 多处SQL注入漏洞

相关厂商:nextsns.com

漏洞作者: xfkxfk

提交时间:2014-02-17 18:20

修复时间:2014-05-18 18:21

公开时间:2014-05-18 18:21

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-02-17: 细节已通知厂商并且等待厂商处理中
2014-02-17: 厂商已经确认,细节仅向厂商公开
2014-02-20: 细节向第三方安全合作伙伴开放
2014-04-13: 细节向核心白帽子及相关领域专家公开
2014-04-23: 细节向普通白帽子公开
2014-05-03: 细节向实习白帽子公开
2014-05-18: 细节向公众公开

简要描述:

EasyTalk 多处SQL注入漏洞

详细说明:

第一处SQL注入漏洞:
漏洞在获取用户聊天记录时:
文件:/Home/Lib/Action/ImAction.class.php
//获得历史聊天记录
public function getDayRecord() {
$uid=$_POST['user_id'];
$user=M('Users')->where("user_id='$uid'")->find();
if ($user) {
$info=getsubstr($user['user_info'],0,50);
$info=$info?$info:L('nothing_write');

$data = D('MessagesView')->where("(senduid='".$this->my['user_id']."' AND sendtouid='$uid') OR (senduid='$uid' AND sendtouid='".$this->my['user_id']."')")->order("message_id DESC")->limit(10)->select();
if ($data) {
$aCent=A('Content');
foreach ($data as $val) {
$val['messagebody']=$aCent->ubb($val['messagebody']);
$val['sendtime']=timeop($val['sendtime']);
$msg[]=$val;
}
}
user_id没有过滤,直接进入查询,导致SQL注入。
第二处SQL注入漏洞:
漏洞在定时获得最新聊天内容时:
文件:/Home/Lib/Action/ImAction.class.php

//定时获得最新内容
public function timeResponse() {
if ($this->my['priread']>0) {
$data = D('MessagesView')->where("sendtouid='".$this->my['user_id']."' AND isread=0")->select();
if ($data) {
$aCent=A('Content');
foreach ($data as $val) {
$val['messagebody']=$aCent->ubb($val['messagebody']);
$val['sendtime']=timeop($val['sendtime']);
$newMessage[]=$val;
}
}

//标记已读
$currentuid=$_POST['currentuid'];
M('Messages')->where("senduid='$currentuid' AND sendtouid='".$this->my['user_id']."'")->setField('isread',1);
$count=M('Messages')->where("sendtouid='".$this->my['user_id']."' AND isread=0")->count();
if ($count==0) {
M('Users')->where("user_id='".$this->my['user_id']."'")->setField('priread',0);
}
}
echo json_encode(array('newMessage'=>$newMessage));
}


currentuid没有过滤,直接进入查询,导致SQL注入。
第三处SQL注入漏洞:
漏洞在发表聊天内容时:
文件:/Home/Lib/Action/ImAction.class.php

//发表聊天
public function sendmsg() {
$ret=D('Messages')->sendmsg($_POST['content'] ,$_POST['nickname'],$this->my);
if ($ret=='success') {
echo json_encode(array("ret"=>'success',"tip"=>L('send_msg_success'),'data'=>array('nickname'=>$this->my['nickname'],'sendtime'=>timeop(time()),'conetnt'=>A('Content')->ubb($_POST['content']))));
} else {
echo json_encode(array("ret"=>'error',"tip"=>$ret));
}
}
//发送信件
public function sendmsg($message,$nickname,$my) {
$uModel=D('Users');
$cModel=D('Content');
$message=daddslashes(trim(clean_html($message)));
if ($cModel->typenums($message)>140) {//私信是140字和系统设置无关
return L('talklong');
}
$user=$uModel->getUser("nickname='$nickname'");
if (!$message) {
return L('send_msg_null');
}


参数nickname没有过滤,导致SQL注入。

漏洞证明:

第一处SQL注入证明:

1.png


2.png


第二处SQL注入证明:

3.png


第三处SQL注入证明:

4.png

修复方案:

过滤啊

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-02-17 19:01

厂商回复:

已修复

最新状态:

暂无