漏洞概要 关注数(2) 关注此漏洞
缺陷编号: WooYun-2014-71493
漏洞标题: 风讯CMS ASP版本反射型跨站绕过浏览器filter
相关厂商: 风讯CMS
漏洞作者: story
提交时间: 2014-08-09 20:01
公开时间: 2014-11-07 20:04
漏洞类型: XSS跨站脚本攻击
危害等级: 低
自评Rank: 5
漏洞状态: 未联系到厂商或者厂商积极忽略
漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系
Tags标签: 反射型xss
漏洞详情
披露状态:
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@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
漏洞评价(少于3人评价):
登陆后才能进行评分
100%
0%
0%
0%
0%
评论