我们先来回顾下这个界面前两次的漏洞以及修复新浪的修复方案。
第一次 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
