网易首页 > 网易号 > 正文 申请入驻

点击 Get跨域数据安全风险检查清单

0
分享至

某日,小张收到了一条朋友发来的某大型购物网站的购买链接:

9.9低价抢购整箱黄桃罐头

小张立即兴奋地点进链接准备大薅羊毛——然而,这条购买链接其实是伪装成正规购物网站网址的钓鱼网站。随后,攻击者在钓鱼网站上利用了该购物网站跨域传输数据时存在的漏洞,窃取了小张的个人信息,小张的姓名、手机号、家庭住址、身份证号等信息都被泄漏了。

类似小张这样用户敏感数据被攻击者窃取的情况,是企业在跨域场景中常会遇到的数据风险,攻击者们会对企业跨域中存在的漏洞加以利用,窃取大量用户敏感数据。

什么是跨域?

在浏览器的安全机制中,同源策略是浏览器最核心也是最基本的安全功能,它限制了一个源中加载文本或者脚本与其他源中资源的交互方式:当浏览器执行一个脚本时,会检查域名是否同源,只有同源域名的脚本才会执行;当浏览器执行非同源域名的脚本时,即为跨域。

(源(Origin):由 protocol、port 和 host 定义。如果两个 URL 的 protocol、port (如果有指定的话) 和 host 都相同的话,则这两个 URL 是同源的。)

什么情况下需要用到跨域?

在实际开发过程中,当不同网站域名之间需要交互流通,方便多个域名间互相授权使用API,避免重复调用资源时,开发者们就需要用到跨域技术实现资源共享。然而,跨域资源的流通也增大了数据的风险暴露面,很可能因为一些跨域方式存在的逻辑漏洞造成企业敏感数据的泄漏。

跨域中存在的安全隐患有哪些?

在这里,猎人君整理了一份跨域数据安全风险检查清单,梳理了4种不同跨域技术方式所存在数据安全隐患,便于大家进行漏洞检查,建设跨域中的数据安全。

按照不同跨域技术方式划分:

Jsonp

Jsonp是指通过标签来实现跨域,如果返回Json格式数据的接口(尤其是包含敏感数据的)没有做好防御措施,容易存在Jsonp劫持的漏洞,从而导致用户的敏感数据被窃取。Jsonp技术主要存在的安全问题如下:

1.显性Jsonp劫持

如下案例所示,获取手机号的API使用了Jsonp跨域技术。但这里没有任何防御措施,攻击者可如下构造代码,使用script请求该API来窃取用户的手机号。


只要受害者访问攻击者构造的页面,攻击者就能利用Jsonp劫持到受害者的手机号。

2.隐性Jsonp劫持

表面看上去返回的是Json格式的接口,也可能存在Jsonp劫持。后端程序员在开发时,可能将Json和Jsonp两种格式都开发好了,攻击者可对返回Json格式的接口探测Jsonp常用的参数(callback、cb、cbk、jsonp、jsonpcb等),实现Jsonp劫持。

如下案例所示,某API会返回Json格式的订单数据。

尝试手动添加上回调函数callback,发现后端返回的数据格式就变成了Jsonp,攻击者即可利用该Jsonp劫持到用户的手机号、姓名、收货地址、购买物品等。

所以即使返回是Json格式的接口,也需要注意排查是否存在Jsonp劫持漏洞。

3.绕过Referer检测以实现Jsonp劫持

后端可以通过校验Referer来避免Jsonp劫持漏洞,但如果校验得不严格,也可能被攻击者绕过。如下案例所示,正常用户请求接口时,不带上Referer网页会返回错误。

在请求中的Header带上Referer: http://xxx.com:5000 时,接口正常返回数据,说明接口对Referer是有校验的。

如果攻击者尝试绕过Referer,发现只要域名中包含xxx.com,即可绕过限制,那么只要攻击者修改Referer为 http://xxx.com.domain.com ,即可绕过Referer的限制,从而实现Jsonp劫持。

Cors

当网页需要跨源请求资源时,Cors(跨域资源共享)可以突破浏览器发出的请求只能向同源的服务器获取数据的限制。

但如果Cors配置不当,网页就很容易存在安全漏洞。如允许任意Origin访问、允许null(空)Origin访问、Origin限制被绕过、Origin范围限制过大等。

1.允许任意Origin

若一个API使用了Cors跨域技术,又允许任意Origin访问,那么攻击者将很容易通过该API窃取敏感信息。

如下案例所示,某获取账号信息的接口允许任意Origin访问时,攻击者可以伪造一个页面诱导受害者访问。受害者访问页面后,页面会发出跨域请求获取受害者的账号信息,此时攻击者就可以窃取受害者的账号信息。

2.允许Origin为null

即使一个API 没有允许任意Origin访问,但如果该API可以允许 null Origin访问,那么将很容易造成CSRF(Cross Site Request Forgery / 跨站请求伪造 ),泄露敏感信息。

如下案例所示,某获取账号信息的接口允许null Origin访问,那么攻击者同样也可以伪造一个页面诱导受害者访问。受害者访问页面后,页面会发出跨域请求获取受害者的账号信息,攻击者也可以窃取到受害者的账号信息。

如下方式的跨域请求,Origin会被设置为null:

请求来源的协议不是 http、https、ftp、ws、wss 或 gopher 中的任意一个(如:blob、file 和 data)。
跨源的图像或媒体,使用、 和 标签跨域请求。
属于以下几种文档类型的:使用 createDocument() 创建的文档、通过data协议生成的文档
重定向跨域请求时。
使用iframe标签,并且 sandbox 属性没有设置 allow-same-origin 。
响应(response)是网络错误时。

这里使用iframe进行跨域访问。poc如下:

iframe><br></code><p><br></p></p><p><p><strong>3.</strong><strong>Origin限制绕过</strong></p><p>当一个API跨域访问时,如果Origin限制不严格,将很容易被攻击者绕过,泄露敏感信息。如下案例所示,当某获取订单信息的接口使用了CORS跨域技术:</p></p><p><p> <img src="http://dingyue.ws.126.net/2022/1220/ce7e61c7j00rn68070035d200u00065g00u00065.jpg"> </p></p><p><p>修改Origin后,响应头中的Origin没有变化,说明服务端对Origin是有校验的。</p></p><p><p> <img src="http://dingyue.ws.126.net/2022/1220/5b93f2b9j00rn68080032d200u0005ig00u0005i.jpg"> </p></p><p><p>攻击者经过测试,发现可以通过添加子域名的方式:http://www.test.com.evil.com,以绕过服务端对Origin的校验。</p></p><p><p> <img src="http://dingyue.ws.126.net/2022/1220/947538b0j00rn68090030d200u0005ng00u0005n.jpg"> </p></p><p><p>那么攻击者就可以通过使用evil.com域名,再添加一个子域名www.test.com.evil.com的方式绕过Origin限制。受害者访问攻击者构造的页面后,页面会发出跨域请求获取受害者的订单信息,从而让攻击者获取到受害者订单号信息。</p><p><strong>4</strong><strong>.Xss + Cors</strong></p><p>开发者通常会对Origin的范围进行校验,但当Origin限制范围过大时,也可能会泄露敏感信息。例如某API限制Origin为*.test.com,且test.com任意一个子域下存在Xss(Cross Site Script / 跨站脚本攻击)漏洞时,攻击者就可以通过Xss进行跨域请求,泄露敏感信息。</p><p>如下案例所示,某获取用户信息的API设置了Cors,但是Origin存在限制,攻击者通过测试发现xxx.com下的子域都可以访问,如果此时某个子域下存在Xss漏洞,攻击者就可以通过js(JavaScript:编程语言)来进行跨域请求。</p><br><p><img src="http://dingyue.ws.126.net/2022/1220/e5ec2d7aj00rn680a006fd200u00088g00u00088.jpg"></p><br><p> <img src="http://dingyue.ws.126.net/2022/1220/38fa9849j00rn680c000td200u00086g00g2004d.jpg"> </p></p><p><p>如图,search.xxx.com的输入框存在Xss漏洞,此时攻击者就可以通过输入框引入js,去跨域请求www.xxx.com/userInfo.php。poc如下:</p><p><br></p><code>// evil.js<br>fetch("http://www.xxx.com:8099/userInfo.php").then((res) => {</p><p>return res.json();<br>}).then((data) => {<br> console.log(data);<br> alert(JSON.stringify(data));<br>})<br></code><p><br></p><br><p> <img src="http://dingyue.ws.126.net/2022/1220/9c500210j00rn680c002id200u0006rg00u0006r.jpg"> </p><p><br></p></p><p><p><strong>Crossdomain.xml</strong></p></p><p><p><br></p><p>在flash 10版本后,如果flash有跨域访问的需求,就必须在目标域的根目录下放置Crossdomain.xml文件。该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据。</p><p>但如果Crossdomain.xml配置不当,网站就很容易存在安全漏洞。如<strong>Crossdomain允许任意域、Crossdomain域名未注册</strong>等。</p><p><strong>1.</strong><strong>Crossdomain允许任意域</strong></p><p>当Crossdomain.xml为如下配置时,网站会允许任意域访问:</p><p><br></p><code><?xml version="1.0"?><br><cross-domain-policy><br> <allow-access-from domain="*" /><br></cross-domain-policy><br></code><p><br></p></p><p><p>如果某个站点(b.com)的Crossdomain.xml如上述配置时,那么b.com就会存在flash跨域的安全问题。</p><p>此时攻击者就可以伪造一个页面和一个swf文件,swf文件里会去请求b.com/userInfo 来获取敏感信息。由于b.com 允许任意域的swf文件访问,所以当受害者访问伪造页面时,伪造页面中的swf文件会发起访问b.com/userInfo的请求,如果受害者刚好登录了b.com。那么浏览器就会带上b.com的cookie去请求b.com/userInfo。<strong>攻击者就可以成功窃取到受害者的用户信息。</strong></p><p><strong>2.</strong><strong>Crossdomain域名未注册</strong></p><p>当我们查看xxx.com下的Crossdomain.xml文件,发现Crossdomain.xml如下配置:</p></p><p><p> <img src="http://dingyue.ws.126.net/2022/1220/d6ff7c02p00rn680c000vd200nu003ig00nu003i.png"> </p></p><p><p>xxxtest.com的域名没有还被注册。此时攻击者就可以通过注册xxxtest.com的域名,跨域获取xxx.com下的数据。</p><p><br></p></p><p><p><strong>Iframe</strong></p></p><p><p><br></p><br><p>在开发中,为了实现功能的简单复用,开发者会把需要复用的组件写成单独的页面挂到一个域名下,其他项目采用iframe的方式去加载该页面。iframe标签可以不受同源策略限制,进行跨域。但是当网站<strong>存在Xss漏洞或者配置不当时,就很容易被窃取敏感数据。</strong></p><p><strong>1.</strong><strong>document.domain跨子域</strong></p><p>如下案例,http://www.test.com/userinfo会返回当前用户的姓名及手机号,通常来说,攻击者可以使用http://www.test.com下的Xss漏洞来访问该API,以窃取用户的敏感信息。</p></p><p><p> <img src="http://dingyue.ws.126.net/2022/1220/69f45e7bj00rn680d002gd200u0006zg00u0006z.jpg"> </p><br><p> <img src="http://dingyue.ws.126.net/2022/1220/1894dc91j00rn680d003td200sg00agg00sg00ag.jpg"> </p><br><p>但这里开发者使用了document.domain,将域设置为了test.com,导致攻击面扩大到了test.com下的任意一个子域名。</p></p><p><p> <img src="http://dingyue.ws.126.net/2022/1220/a2c39271j00rn680e000kd2009n004rg009n004r.jpg"> </p></p><p><p>因此,攻击者可以使用任意一个子域名http://*.test.com的Xss漏洞,就能访问到该API,从而窃取到用户的敏感信息。</p><br><p><img src="http://dingyue.ws.126.net/2022/1220/c201e835j00rn680f003rd200sg009fg00sg009f.jpg"></p><br><p><strong>2.</strong><strong>window.name固定</strong></p><p>由于window.name一旦设置完成,就是固定信息,无论iframe的src怎么变化,window.name都不会改变。如果一个页面在window.name存放了敏感数据,攻击者就可以通过iframe加载该页面获取到敏感数据。</p><p>如图案例所示,某页面在window.name中存放了敏感数据。</p></p><p><p> <img src="http://dingyue.ws.126.net/2022/1220/da127afbj00rn680f0018d200g8009gg00g8009g.jpg"> </p></p><p><p>攻击者可通过iframe加载该页面,等待其往window.name中存放敏感数据,然后获取iframe的window.name。</p></p><p><p> <img src="http://dingyue.ws.126.net/2022/1220/ab3d027fj00rn680g001fd200cs00cgg00cs00cg.jpg"> </p></p><p><p>因为有同源策略的限制,攻击者暂时是无法获取到的。</p></p><p><p> <img src="http://dingyue.ws.126.net/2022/1220/c6e7beabj00rn680h000wd200my0084g00my0084.jpg"> </p></p><p><p>但攻击者可以通过iframe.contentWindow.location让iframe跳转到与iframe外同域的页面,使网页同源。</p></p><p><p> <img src="http://dingyue.ws.126.net/2022/1220/c47e3ac6j00rn680h0026d200hg00exg00hg00ex.jpg"> </p></p><p><p>即可获取到window.name中存放的敏感数据。</p></p><p><p> <img src="http://dingyue.ws.126.net/2022/1220/41a7fc67j00rn680i001dd200b40087g00b40087.jpg"> </p></p><p><p><strong>3.</strong><strong>window.postMessage伪造数据发送端</strong></p><p>window.PostMeaage是HTML5提供的一个跨域解决方案。可以绕过同源策略,实现不同域之间的window对象通信。</p><p>但当数据接收端为如下配置时,如果开发者没有对数据来源进行校验,且也没有对接收的数据做出处理,将很容易存在安全隐患。</p></p><p><p><br></p><code># 子页面 res.html<br><div><br> <p id="message"><br> </p><br></div><br><script><br> window.onload = function () {<br> var messageEle = document.getElementById('message');<br> window.addEventListener('message', function (e) {<br> messageEle.innerHTML = e.data;<br> });<br> }<br></script><br></code><p><br></p><code># 父页面 evil.html<br>DOCTYPE HTML><br><html></p><p><body><br> <iframe src="http://127.0.0.1:8081/res.html" width="500" height="60" id="receiver"><br>


攻击者可以伪造一个父页面,通过ifarme标签包含接收页面,发送消息给子页面。子页面使用父页面传递的消息进行其他操作,例如写入数据等,从而造成安全问题。或者子页面将父页面发送的消息直接插入当前文档流,并且没有对父页面发送的消息做过滤,那么很容易引发Xss攻击,窃取子页面所在域的cookie信息。

在当下的网络环境中,黑产攻击层出不穷,网站中存在的任何一个风险漏洞都可能被攻击者加以利用,进而造成严重的数据泄漏,让品牌声誉受到严重影响。因此,对跨域数据安全的保护,是企业建设数据安全时的重要措施。

参考资料:

https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS

https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy

如需了解更多企业数据安全,可关注【永安在线情报平台】:

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
又有大瓜!网友自曝儿子是王思聪的,万达长孙,想给孩子讨个说法

又有大瓜!网友自曝儿子是王思聪的,万达长孙,想给孩子讨个说法

花花lo先森
2024-06-17 11:59:18
硬仗软蛋!拒绝续约,4年2.08亿美元啊,再见了,榜眼

硬仗软蛋!拒绝续约,4年2.08亿美元啊,再见了,榜眼

球童无忌
2024-06-18 20:16:28
河南叶县冷藏车惨祸,亲属:8人都是女工,每天上下班都坐冷藏车,疑因车厢内干冰泄露,司机最高或判7年

河南叶县冷藏车惨祸,亲属:8人都是女工,每天上下班都坐冷藏车,疑因车厢内干冰泄露,司机最高或判7年

纵相新闻
2024-06-17 22:15:35
赵丽颖古早黑历史曝光,惊人往事让人不敢相信,疑似没文化还当三

赵丽颖古早黑历史曝光,惊人往事让人不敢相信,疑似没文化还当三

花哥扒娱乐
2024-04-18 22:17:33
你无意中发现过别人的什么秘密?网友:直接让我尴尬社死!

你无意中发现过别人的什么秘密?网友:直接让我尴尬社死!

滑稽斑马呀
2024-06-18 18:59:44
权威涉税服务机构:当前对个别企业追缴税款是正常履职,也是营造公平公正的税收营商环境

权威涉税服务机构:当前对个别企业追缴税款是正常履职,也是营造公平公正的税收营商环境

澎湃新闻
2024-06-18 09:14:27
我从广州搬至深圳,真心觉得,我在深圳真的“卷不动”了

我从广州搬至深圳,真心觉得,我在深圳真的“卷不动”了

小陆搞笑日常
2024-06-18 20:29:58
曾经的两个好朋友,已成两敌人,再想买先进装备是没地方可买了

曾经的两个好朋友,已成两敌人,再想买先进装备是没地方可买了

历史与财经
2024-06-12 12:52:02
中国发出警告:90天内不支付358亿赔偿金,18艘军舰就别想要了

中国发出警告:90天内不支付358亿赔偿金,18艘军舰就别想要了

星辰故事屋
2024-06-09 17:09:59
中国女排总决赛名单公布,袁志正式接替蔡斌,张常宁接任队长职务

中国女排总决赛名单公布,袁志正式接替蔡斌,张常宁接任队长职务

拳击时空
2024-06-19 06:12:30
浙江一男孩频繁腹痛,谁知医生看完影像后:准备后事吧

浙江一男孩频繁腹痛,谁知医生看完影像后:准备后事吧

纪实录
2024-06-14 20:43:32
面具下的普京,20年来对乌克兰干了什么?

面具下的普京,20年来对乌克兰干了什么?

史政先锋
2024-06-13 15:31:40
任务完成了!凯尔特人赛后晒塔图姆球衣号码:还需要0场!

任务完成了!凯尔特人赛后晒塔图姆球衣号码:还需要0场!

直播吧
2024-06-18 12:45:14
《玫瑰的故事》原著:没有富贵命的方太初,她比母亲玫瑰要好命多

《玫瑰的故事》原著:没有富贵命的方太初,她比母亲玫瑰要好命多

竹英的成长计划
2024-06-18 21:56:11
中菲南海爆发对撞,美日加菲军舰火速驰援,可他们根本不够塞牙缝

中菲南海爆发对撞,美日加菲军舰火速驰援,可他们根本不够塞牙缝

淡然小司
2024-06-17 20:19:54
权威涉税服务机构:当前对个别企业追缴税款是正常履职 也是营造公平公正的税收营商环境

权威涉税服务机构:当前对个别企业追缴税款是正常履职 也是营造公平公正的税收营商环境

财联社
2024-06-18 09:20:05
一老牌房企几乎全员“原地解散”,监管已介入

一老牌房企几乎全员“原地解散”,监管已介入

南方都市报
2024-06-18 07:00:45
在洪水围困前一起撤离:梅州暴雨后居民转移与互助的几个片段

在洪水围困前一起撤离:梅州暴雨后居民转移与互助的几个片段

南方都市报
2024-06-18 10:13:23
欧元降息,美元不动,人民币贬值,全世界再次看日本脸色?

欧元降息,美元不动,人民币贬值,全世界再次看日本脸色?

小蜜情感说
2024-06-18 18:41:47
趁虚而入,切割以色列的土地

趁虚而入,切割以色列的土地

战域笔墨
2024-06-18 23:00:07
2024-06-19 08:22:44
威胁猎人
威胁猎人
威胁猎人(Threat Hunter)成立于2017年,专注于威胁情报和API安全解决方案的输出。
196文章数 126关注度
往期回顾 全部

科技要闻

英伟达市值超微软 成全球市值最高上市公司

头条要闻

媒体:要卸任的北约秘书长还在埋雷 令世界深感忧虑

头条要闻

媒体:要卸任的北约秘书长还在埋雷 令世界深感忧虑

体育要闻

对于凯尔特人来说 谁是MVP根本不重要

娱乐要闻

被曝新恋情,张碧晨王琳凯发声辟谣

财经要闻

国家税务总局回应“倒查30年”

汽车要闻

全球最低价 现代IONIQ 5N预售价39.88万

态度原创

家居
数码
本地
旅游
公开课

家居要闻

在用什么吃饭这件事上,中国人仪式感拉满了

数码要闻

最新消息:苹果搁置第二代Vision Pro开发 专注于“更便宜的头显”

本地新闻

我和我的家乡|在鞍山的每一步都有新发现

旅游要闻

直航加免签,利好中国—古巴旅游往来

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版