漏洞概要
关注数(24)
关注此漏洞
漏洞标题:Cmseasy存储型XSS一枚(绕过xss防护)
提交时间:2014-07-25 15:22
修复时间:2014-09-08 15:24
公开时间:2014-09-08 15:24
漏洞类型:xss跨站脚本攻击
危害等级:中
自评Rank:10
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2014-07-25: 细节已通知厂商并且等待厂商处理中
2014-07-27: 厂商已经确认,细节仅向厂商公开
2014-08-06: 细节向核心白帽子及相关领域专家公开
2014-08-16: 细节向普通白帽子公开
2014-08-26: 细节向实习白帽子公开
2014-09-08: 细节向公众公开
简要描述:
不搞论坛了,换个姿势继续x,最新版也受到影响
详细说明:
存在xss的地方在商品评论的用户名处
直接给出xss语句,360脚本拦截html实体编码,所以需要使用\uxxxx编码。语句如下:
漏洞的成因主要是因为正则没写好,并且碰巧用户名处没去除html标签导致的。我们一步一步看:
首先我们输入的数据会来到uploads\lib\default\comment_act.php的第8行:
跟进filter来到\uploads\lib\table\table_mode.php第9行:
继续跟进removehtml,可以看到removehtml的定义如下:
其中存在问题的正则是
并且按照"\1\2"的分组来替换,如果我们输入的是
看看会替换成什么样:
可以看到分组1和2刚好拼凑成了<input onfocus=\u0061lert(1) autofocus>
最后看输出,输出在#comment_js.php,可以看到content使用了strip_tags去掉html标签,而username却直接输出到页面。一系列的巧合导致了漏洞发生。
成功执行xss
漏洞证明:
成功执行xss
修复方案:
1、正则修改下
2、用strip_tags去掉html标签
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:10
确认时间:2014-07-27 11:28
厂商回复:
感谢,立即更新
最新状态:
暂无