漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-059940
漏洞标题:新浪某界面dom型xss(二)
相关厂商:新浪
漏洞作者: 香草
提交时间:2014-05-08 19:11
修复时间:2014-06-22 19:11
公开时间:2014-06-22 19:11
漏洞类型:xss跨站脚本攻击
危害等级:低
自评Rank:5
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-05-08: 细节已通知厂商并且等待厂商处理中
2014-05-09: 厂商已经确认,细节仅向厂商公开
2014-05-19: 细节向核心白帽子及相关领域专家公开
2014-05-29: 细节向普通白帽子公开
2014-06-08: 细节向实习白帽子公开
2014-06-22: 细节向公众公开
简要描述:
前两天提交的该界面的一个漏洞,新浪很快就修复了,但是并没有完全修复,另外一处代码也存在问题。(说明,由于乌云会把\替换为\\,所以下文中的\都只有一半)。
详细说明:
为了方便大家分析,我在此先贴出javascript代码:
对于参数链接合法性的检查是通过checkDomain函数进行的。但是此正则表达式有一个很经典的错误:
这个正则的问题在于:
是可以匹配成功的,原因是\在javascript里面是转义字符,在正则表达式里面也是转义字符,正确的写法应该是:
根据这段代码
if ((type === 'flash' || type === 'image' || type === 'adbox')
可以看出,type的取值可以是flash,image,adbox三个值之一。
当我们的type是flash的时候,第二次参数(arry[1])src会出现在embed的src里面,但是由于embed模式allowScriptAccess是someDomain也不能执行js。于是我继续测试type为adbox的时候。发现第二个参数会出现在iframe的src里,于是我们构造如下链接,绕过正则表达式过滤:
可以加载任意框架,可用作欺骗钓鱼,如图:
漏洞证明:
修复方案:
修改验证代码为:
版权声明:转载请注明来源 香草@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:4
确认时间:2014-05-09 11:13
厂商回复:
感谢关注新浪安全,马上通知相应开发人员进行处理
最新状态:
暂无