漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-061364
漏洞标题:PHPCMS V9存储型XSS
相关厂商:phpcms
漏洞作者: phith0n
提交时间:2014-05-20 14:53
修复时间:2014-08-18 14:54
公开时间:2014-08-18 14:54
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-05-20: 细节已通知厂商并且等待厂商处理中
2014-05-21: 厂商已经确认,细节仅向厂商公开
2014-05-24: 细节向第三方安全合作伙伴开放
2014-07-15: 细节向核心白帽子及相关领域专家公开
2014-07-25: 细节向普通白帽子公开
2014-08-04: 细节向实习白帽子公开
2014-08-18: 细节向公众公开
简要描述:
无需交互即可触发,绕过过滤函数,可打管理员。
详细说明:
依旧是富文本XSS,完全绕过过滤函数,执行任意XSS代码。
众所周知,phpcms是支持投稿的,而投稿这里就能够输入富文本。那么我找到并提取出它的过滤函数,如下:
而处理富文本过程是这样的:
首先去除<p><a><br><img><ul><li><div>这些标签以外的标签。再使用remove_xss进行过滤。我们看到remove_xss函数,似乎过滤了很多关键字,像我最喜欢onerror是肯定没有了的。
没有了?那我们看它最后怎么处理的:
直接将关键字过滤成空了。这种错误居然在phpcms里也会犯?如果我们输入的是oneronerrorror,过滤掉中间那个onerror,外面正好又组成了一个onerror。有了这个属性,就能够触发任意xss语句了,其他限制可以通过html字符实体来绕过。
详见漏洞证明。
漏洞证明:
首先需要网站我有权限投稿。
然后来到投稿区域(index.php?m=member&c=content&a=published),随便写点,提交。中途用burpsuite抓包,将info[content]中间加入我的payload:
注意加入后要urlencode一下:
然后管理员在后台相关栏目内能看到我的文章:
打开页面后直接触发,不用用户交互:
来一个加载远程js的exp:
修复方案:
你们懂。
版权声明:转载请注明来源 phith0n@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:8
确认时间:2014-05-21 15:54
厂商回复:
感谢反馈。
最新状态:
暂无