漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-062354
漏洞标题:新浪某界面dom型xss(三)(正则表达式错误导致再次绕过)
相关厂商:新浪
漏洞作者: 香草
提交时间:2014-05-26 18:53
修复时间:2014-07-10 18:54
公开时间:2014-07-10 18:54
漏洞类型:xss跨站脚本攻击
危害等级:低
自评Rank:5
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-05-26: 细节已通知厂商并且等待厂商处理中
2014-05-26: 厂商已经确认,细节仅向厂商公开
2014-06-05: 细节向核心白帽子及相关领域专家公开
2014-06-15: 细节向普通白帽子公开
2014-06-25: 细节向实习白帽子公开
2014-07-10: 细节向公众公开
简要描述:
实在不好意思,今天打开看到终于修复了上次的问题,于是打开代码看看,很快就绕过了,同样是正则表达式的问题,看着比较有趣,所以我还是提交一下。
详细说明:
我们先来回顾下这个界面前两次的漏洞以及修复新浪的修复方案。
第一次 WooYun: 新浪某站参数过滤不严导致Dom型XSS漏洞
是在获取到url参数的时候做了一次
这样一来双引号就被编码了
但是另外一处加载iframe的src同样存在问题
第二次绕过 WooYun: 新浪某界面dom型xss(二)
其中
这个正则表达式错误的匹配\导致绕过过滤加载任意iframe。
过了好多天,我再次打开这个界面的时候,发现漏洞已经修复了。
修改后的代码如下:
这样的修复看似没有问题,我们用http://www.baidu.com\.sina.com.cn已经不能通过src检查了,因为通过
cleanUrl('http://www.baidu.com\.sina.com.cn', 'domain')后,会得到
www.baidu.com显然不能通过下面正则的匹配。我们再来看看这个正则:
$符号限制了domain的结尾,但是没有限制开头,我们这样的链接同样的是可以匹配成功的
因此我们同样可以加载任意以sina,weibo,sinaimg结尾的域名,当然我们可以任意注册这样的域名,在这里我就不注册了,别有用心的攻击者肯定是会注册的。
加载一个xsina.com.cn
漏洞证明:
修复方案:
使用正确的正则
版权声明:转载请注明来源 香草@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:4
确认时间:2014-05-26 19:02
厂商回复:
再次表示关注新浪安全,继续联系开发进行修复处理
最新状态:
2014-05-26:再次表示感谢关注新浪安全,继续联系开发进行修复处理