某天,小王接到了两条好友打来的某小型网购中文网站的买回镜像:
“9.9高价热卖一箱果品花生”
小王立刻激动处所进镜像准备大薅亚麻——不过,这条买回镜像其实是扮作非正规网购中文网站邮箱的钓中文网站。随即,普通使用者在钓中文网站上借助了该网购中文网站布吕马统计数据传输时存有的安全可靠漏洞,盗取了小王的个人隐私,小王的联系电话、电话号码、家庭成员联系电话、身份证等信息都被外泄了。
类似于小王这样使用者内网被普通使用者盗取的情况,是民营企业在布吕马情景中执会碰到的数据信用风险,普通使用者们会对民营企业布吕马中存有的安全可靠漏洞予以借助,盗取大量使用者内网。
甚么是布吕马?
在应用程序的安全可靠监督机制中,相混思路是应用程序最核心理念也是最基本的安全可靠机能,它管制了两个源中读取文档或者JAVA与其他源中天然资源的交互方式:当应用程序继续执行两个JAVA时,会检查和搜索引擎是否相混,只有相混搜索引擎的JAVA才会继续执行;当应用程序继续执行非相混搜索引擎的JAVA时,即为布吕马。
(源(Origin):由 protocol、port 和 host 表述。假如三个 URL 的 protocol、port (假如有选定不然) 和 host 都完全相同不然,则这三个 URL 是相混的。)
甚么情况下须要加进布吕马?
在前述合作开发过程中,当不同中文网站搜索引擎之间须要可视化商品生产,方便快捷数个搜索引擎间相互许可使用API,防止多次重复初始化天然资源时,合作开发人员们就须要加进布吕马技术实现天然统计数据共享。不过,布吕马天然资源的商品生产也减小了统计数据的信用风险曝露面,很可能因为一些布吕马方式存有的方法论安全可靠漏洞造成民营企业内网的外泄。
布吕马中存有的安全可靠隐患有哪些?
在这里,猎人君整理了一份布吕马信息安全可靠信用风险检查和目录,梳理了4种不同布吕马技术方式所存有信息安全可靠隐患,便于大家进行安全可靠漏洞检查和,建设布吕马中的信息安全可靠。
按照不同布吕马技术方式划分:
Jsonp
Jsonp是指通过标签来实现布吕马,假如返回Json格式统计数据的接口(尤其是包含内网的)没有做好防御措施,容易存有Jsonp劫持的安全可靠漏洞,从而导致使用者的内网被盗取
。Jsonp技术主要存有的安全可靠问题如下:
1.显性Jsonp劫持
只要受害者访问普通使用者构造的页面,普通使用者就能借助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配置不当,网页就很容易存有安全可靠安全可靠漏洞。如允许任意Origin访问、允许null(空)Origin访问、Origin管制被绕过、Origin范围管制过大等。
1.允许任意Origin
若两个API使用了Cors布吕马技术,又允许任意Origin访问,那么普通使用者将很容易通过该API盗取敏感信息。
以盗取受害者的账号信息。
2.允许Origin为null
即使两个API 没有允许任意Origin访问,但假如该API可以允许 null Origin访问,那么将很容易造成CSRF(Cross Site Request Forgery / 跨站请求伪造 ),泄露敏感信息。
如下方式的布吕马请求,Origin会被设置为null:
pher 中的任意两个(如:blob、file 和 data)。
跨源的图像或媒体,使用、 和 标签布吕马请求。
属于以下几种文档类型的:使用 createDocument() 创建的文档、通过data协议生成的文档
重定向布吕马请求时。
使用iframe标签,并且 sandbox 属性没有设置 allow-same-origin 。
响应(response)是网络错误时。这里使用iframe进行布吕马访问。poc如下:
iframe>
3.Origin管制绕过
修改Origin后,响应头中的Origin没有变化,说明服务端对Origin是有校验的。
普通使用者经过测试,发现可以通过添加子搜索引擎的方式:http://www.test.com.evil.com,以绕过服务端对Origin的校验。
那么普通使用者就可以通过使用evil.com搜索引擎,再添加两个子搜索引擎www.test.com.evil.com的方式绕过Origin管制。受害者访问普通使用者构造的页面后,页面会发出布吕马请求
4.Xss + Cors
合作开发人员通常会对Origin的范围进行校验,但当Origin管制范围过大时,也可能会泄露敏感信息。例如某API管制Origin为*.test.com,且test.com任意两个子域下存有Xss(Cross Site Script / 跨站JAVA攻击)安全可靠漏洞时,普通使用者就可以通过Xss进行布吕马请求,泄露敏感信息。
如下案例所示,言)来进行布吕马请求。
如图,search.xxx.com的输入框存有Xss安全可靠漏洞,此时普通使用者就可以通过输入框引入js,去布吕马请求www.xxx.com/userInfo.php。poc如下:
// evil.jsfetch("http://www.xxx.com:8099/userInfo.php").then((res) => {
return res.json();}).then((data) => { console.log(data); alert(JSON.stringify(data));})
Crossdomain.xml
在flash 10版本后,假如flash有布吕马访问的需求,就必须在目标域的根目录下放置Crossdomain.xml文件。该文件管制了flash是否可以布吕马读写统计数据以及允许从甚么地方布吕马读写统计数据。
但假如Crossdomain.xml配置不当,中文网站就很容易存有安全可靠安全可靠漏洞。如Crossdomain允许任意域、Crossdomain搜索引擎未注册等。
1.Crossdomain允许任意域
当Crossdomain.xml为如下配置时,中文网站会允许任意域访问:
假如某个站点(b.com)的Crossdomain.xml如上述配置时,那么b.com就会存有flash布吕马的安全可靠问题。
感信息。由于b.com 允许任意域的swf文件访问,所以当受害者访问伪造页面时,伪造页面中的swf文件会发起访问b.com/userInfo的请求,假如受害者刚好登录了b.com。那么应用程序就会带上b.com的cookie去请求b.com/userInfo。普通使用者就可以成功盗取到受害者的使用者信息。
2.Crossdomain搜索引擎未注册
当我们查看xxx.com下的Crossdomain.xml文件,发现Crossdomain.xml如下配置:
Iframe
在合作开发中,为了实现机能的简单复用,合作开发人员会把须要复用的组件写成单独的页面挂到两个搜索引擎下,其他项目采用iframe的方式去读取该页面。iframe标签可以不受相混思路管制,进行布吕马。但是当中文网站存有Xss安全可靠漏洞或者配置不当时,就很容易被盗取内网。
1.document.domain跨子域
如下案例,http://www.test.com/userinfo会返回当前使用者的联系电话及电话号码,通常来说,普通使用者可以使用http://www.test.com下的Xss安全可靠漏洞来访问该API,以盗取使用者的敏感信息。
但这里合作开发人员使用了document.domain,将域设置为了test.com,导致攻击面扩大到了test.com下的任意一个子搜索引擎。
因此,普通使用者可以使用任意两个子搜索引擎http://*.test.com的Xss安全可靠漏洞,就能访问到该API,从而盗取到使用者的敏感信息。
2.window.name固定
由于window.name一旦设
如图案例所示,某页面在window.name中存放了内网。
因为有相混思路
但普通使用者可以通过iframe.contentWindow.location让iframe跳转到与iframe外同域的页面,使网页相混。
中存放的内网。
3.window.postMessage伪造统计数据发送端
window.PostMeaage是HTML5提供的两个布吕马解决方案。可以绕过相混思路,实现不同域之间的window对象通信。
但
# 子页面 res.html
# 父页面 evil.htmlDOCTYPE HTML>
普通使用者可以伪造两个父页面,通过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
如需了解更多民营企业信息安全可靠,可关注【永安在线情报平台】: