A-A+

[通杀苏宁所有分站]的反射XSS – 金融、支付、保险、钱包等无一幸免

2017年06月01日 14:05 漏洞安全 暂无评论 阅读 59 views 次

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

起因是这样的,前几天在苏宁网购物,然后无意发现一枚苏宁某分站绕WAF实现反射XSS,然后就顺手提交到他们的安全平台了。一个反射XSS么,我个人也没觉得这个能给很多分,或者有多大危害,结果他们确实也忽略了,不过忽略的理由奇葩到极限了。忽略理由请看上文的结尾部分。

然后就有了此文,一顿找反射XSS,因为不能开扫描器,结果找着找着,发现了一个通杀苏宁所有分站的一个反射XSS,问题主要出在一个接口的文件处。而这个接口文件,所有的二级域名等多级域名基本都会调用这个文件。

 

此文章非常水,就是一个DOM型XSS而已。但是巧合的是,苏宁几乎所有的站点都会调用这个“插件”,所以才导致问题的出现。

 

因为不方便透露漏洞详细信息,所以敏感信息我已经隐藏了。

通过对多个二级域名的探测发现如下接口。基本没个二级域名都会有。

https://xxxx.suning.com/xxxxx?url=https%3A%2F%2Fxxxx.suning.com%2Fxxxxxxx.htm

当你访问任何二级域名的某个功能的时候都会出现一个如此的数据包。通过访问发现它会返回一个数据包,如下图:

接口返回数据包

注意到了吧,程序返回的地址是上方URL参数指定的地址,如果我把上面的地址改成:

http://xxxx.suning.com/xxxxx?url=http://www.baidu.com/

那么返回的数据包代码就会变成

1
<script type="text/javascript">parent.location.href = "http://www.baidu.com/#loginSuccess:"</script>

那这就很明显喽,不过这里面有个问题,就是过滤了尖括号等一些特殊字符,所以,如果前面指定网址了,那么假设你构造成http://xxxx.suning.com/xxxxx?url=http://www.baidu.com/";alert(1);"
虽然会弹窗,但是闪一下就跳转了。还是感觉不妥,不过这时候想起一个特性,就是二次赋值的问题。如果我们是不是可以更改成这样:http://xxxx.suning.com/xxxxx?url=http://www.baidu.com/";alert(1);parent.location.href="http://www.baidu.com/";" 这样最终就可以成功弹窗并且调到我们指定的地址。如图:

最终实现弹窗

标签:

给我留言