跨域漏洞

2019/01/05 safety

跨域漏洞【低危】

原理概述

此处的跨域漏洞是特指flash的配置文件crossdomainxml因配置不当导致的flash的行为不受控制从而产生安全隐患的问题以及jsonp跨域会存在的一些安全隐患。flash是通过目标网站的crossdomainxml文件来判断是否允许当前域的flash访问目标资源,而当crossdomainxml配置不当的时候,就有可能导致不受信任的第三方域的flash也能访问当前域的资源

危害

导致不受信任的第三方域的flash也能访问当前域的资源,绕过同源策略的限制,可为后续渗透攻击做准备

jsonp的跨域和flash的跨域均可能导致XSS,CSRF等问题

···

BadCase样例

/*

jsonp跨域本身没有问题,因为Jsonp本身就是为了跨域而存在的,只是跨域本身就存在安全隐患,如果

安全检查不够好,则会造成安全问题,假设本程序为wwwtestcom/jsonpphp,那么攻击者完全可以在自己的服务器上编写一个页面,用<script src="http://wwwtestcom/jsonpphp?callback=hacker"></script>的方式加载页面然后通过js去读取数据,此外由用户定义callback的也可能造成XSS

*/

$callback=$_GET['callback'];

echo $callback"({'id':'Test','email':'www@testcom'})";

修复建议

使用白名单策略,只允许特定网站进行跨域访问

jsonp的跨域,可以考虑使用以下方案:

对第三方域校验refer或者使用一次性token,请参考CSRF的防御

严格按照json格式输出content-type与编码,样例如下

header(‘ContentType:application/json;charset=utf-8’);

过滤callback函数名及JSON里数据的输出,参考XSS的防御

严格限制对JSONP输出callback函数名的长度


Search

    Table of Contents