漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-071493
漏洞标题:风讯CMS ASP版本反射型跨站绕过浏览器filter
相关厂商:风讯CMS
漏洞作者: story
提交时间:2014-08-09 20:01
修复时间:2014-11-07 20:04
公开时间:2014-11-07 20:04
漏洞类型:xss跨站脚本攻击
危害等级:低
自评Rank:5
漏洞状态:未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-08-09: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-11-07: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
反射型跨站没啥好说的,但是绕过浏览器filter自动执行也算一个小突破吧。
详细说明:
foosuncms后台/admin/success.asp是任意用户都可以访问的。
看看出问题的代码:
上面获得了ErrorUrl参数,在52行的位置将它放进a的href中了。
原本就是一个不用绕过浏览器filter的跨站,但是需要点击触发:
明显不是我们要想的结果。
那么怎么绕过浏览器filter自动执行?
首先我们要知道浏览器过滤哪些关键字,很常见的就是一个<script>,或者onerror中的on,浏览器只要见到这二者就是会过滤的:
再深入一点就提到浏览器filter的原理,浏览器过滤的时候是检测url的参数中、页面源代码中是否有同样的xss字段,如果有的话才说明存在跨站,才进行拦截。
也就是说,如果url中的内容和html源码中的内容不同的话,浏览器不认为这是一个跨站,也就不会防御。
所以我们看到这行代码:
它获取到ErrorUrl后,过滤了''为空。
所以,我们不妨将浏览器会过滤的敏感字符串(如script)中加入'',变成<scr''ipt>,这样url中的字符串是scr''ipt,但显示在html中的字符串是script,这样浏览器就不会拦截了。
所以我最后构造的payload就是:
如图:
demo站演示
漏洞证明:
修复方案:
过滤。
版权声明:转载请注明来源 story@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝