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

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

缺陷编号: WooYun-2012-13491

漏洞标题: ShopEx收货地址可任意查看修改删除

相关厂商: ShopEx

漏洞作者: Steven

提交时间: 2012-10-18 10:54

公开时间: 2012-10-23 10:54

漏洞类型: 非授权访问/权限绕过

危害等级: 中

自评Rank: 5

漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签: 无

1人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-10-18: 细节已通知厂商并且等待厂商处理中
2012-10-23: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

普通会员登录网站后,通过恶意构造的URL可以实现对整个网站的收货地址查看、修改、和删除。
造成用户敏感隐私泄漏和网站不必要的损失。

详细说明:

core/shop/controller/ctl.member.php文件



code 区域
//修改收货地址
function modifyReceiver($addrId){
$oMem = &$this->system->loadModel('member/member');
if($aRet = $oMem->getAddrById($addrId)){
$aRet['defOpt'] = array('0'=>__('否'), '1'=>__('是'));
$this->pagedata = $aRet;
}else{
$this->system->error(404);
exit;
}

$this->_output();
}

function saveRec(){
$this->begin($this->system->mkUrl('member','modifyReceiver',array($_POST['addr_id'])));
$oMem = &$this->system->loadModel('member/member');
if($oMem->saveRec($_POST,$this->member['member_id'],$message)){
$this->redirect('member','receiver');
}
trigger_error($message, E_USER_ERROR);
$this->end(false,__('修改失败'),$this->system->mkUrl('member','modifyReceiver',array($_POST['addr_id'])));
}

//删除收货地址
function delRec($addrId){
$oMem = &$this->system->loadModel('member/member');
if($oMem->delRec($addrId)){
$this->redirect('member','receiver');
}
$this->_output();
}



以上三个函数没有对所修改的地址所属用户ID进行判断,造成用户信息泄漏和安全隐患。

漏洞证明:

打开任意shopex4.85网站,注册会员登录后,

修改以下URL中的ID属性

/?member-21-modifyReceiver.html 可显示和修改其他用户的地址

/?member-21-delRec.html 可删除其他用户的地址

修复方案:

函数添加对用户ID的判断

code 区域
//修改收货地址
function modifyReceiver($addrId){
$oMem = &$this->system->loadModel('member/member');

if($aRet = $oMem->getAddrById($addrId)){
if($aRet['member_id']!=$this->member['member_id']){
$this->system->error(404);
exit;
}else{
$aRet['defOpt'] = array('0'=>__('否'), '1'=>__('是'));
$this->pagedata = $aRet;
}
}else{
$this->system->error(404);
exit;
}

$this->_output();
}

function saveRec(){
$this->begin($this->system->mkUrl('member','modifyReceiver',array($_POST['addr_id'])));
$oMem = &$this->system->loadModel('member/member');
foreach($_POST as $ke=>$ve){
$_POST[$ke] = strip_tags($ve);
}
if($aRet = $oMem->getAddrById($_POST['addr_id'])){
if($aRet['member_id']!=$this->member['member_id']){
$this->system->error(404);
exit;
}
}
if($oMem->saveRec($_POST,$this->member['member_id'],$message)){
$this->redirect('member','receiver');
}
trigger_error($message, E_USER_ERROR);
$this->end(false,__('修改失败'),$this->system->mkUrl('member','modifyReceiver',array($_POST['addr_id'])));
}

//删除收货地址
function delRec($addrId){
$oMem = &$this->system->loadModel('member/member');
if($aRet = $oMem->getAddrById($_POST['addr_id'])){
if($aRet['member_id']!=$this->member['member_id']){
$this->system->error(404);
exit;
}
}
if($oMem->delRec($addrId)){
$this->redirect('member','receiver');
}
$this->_output();
}

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2012-10-23 10:54

厂商回复:

最新状态:

2012-10-23: 额。。貌似没收到通知邮件 不好意思。这个问题一直存在,在修改 感谢您的提交 非常感谢


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2012-10-18 16:42 | 陌路 ( 路人 | Rank:8 漏洞数:5 | 安全爱好者!)
    0

    跟前几天那漏洞差不多..

  2. 2012-10-20 17:57 | Steven ( 路人 | Rank:0 漏洞数:1 | 致力互联网技术发展与网络安全,网站安全检...)
    0

    下載官方的最新補丁包打上後,此漏洞仍然存在。

登录后才能发表评论,请先 登录