Tag:同源策略

Tag (同源策略)'s result:

浅谈sop、cors和csp

0x00 SOP(同源策略) 协议、域名、端口相同。 简单说就是防止A网站读取B网站的cookie(资源)。 ie不受端口和授信范围(信任度)限制。 sop虽然增加了安全性,但在某些情况下(如子域间通信)造成了不便,这时候需要跨域: 1.document.domain 2. #片段标识 3. name 4. postMessage 5. jsonp 6. cors 7. Websocket <script><img><iframe><link><video><audio>等带有src属性的标签可以从不同的域加载资源,但不能读资源。 0x01 CORS(跨域资源共享) 允许浏览器向跨源服务器发XMLHttpRequest请求,突破了ajax只能同源的限制,并且和ajax代码一样,关键在服务器的cors配置。 客户端: var invocation = new XMLHttpRequest();var url = ‘http://bar.other/resources/public-data/’; function callOtherDomain() { if(invocation) { invocation.open(‘GET’, url, true); invocation.onreadystatechange = handler; invocation.send(); 或者判断浏览器: <!DOCTYPE html> <html> <head> <script type=”text/javascript” src=”./functions.js”></script> </head> <body> <script type=”text/javascript”> // Create the XHR object. function createCORSRequest(method, url) { var xhr = new XMLHttpRequest(); if (“withCredentials” in xhr) { // XHR for Chrome/Firefox/Opera/Safari. xhr.open(method, url, true); } else if (typeof XDomainRequest != “undefined”) { // XDomainRequest for IE. xhr = new XDomainRequest(); xhr.open(method, url); } else { // CORS not supported. xhr = null; } return xhr; } // Make the actual CORS request. function makeCorsRequest() { // All HTML5 Rocks properties support CORS. var url = ‘http://oss-cors-test.oss-cn-hangzhou.aliyuncs.com/test.txt’; var xhr = createCORSRequest(‘GET’, url); if (!xhr) { alert(‘CORS not supported’); return; } // Response handlers. xhr.onload = function() { var text = xhr.responseText; var title = text; alert(‘Response from CORS request to ‘ + url……

浅谈应用克隆

0x00 概述 漏洞发现者:腾讯玄武实验室 漏洞简述:webview跨域访问,可泄漏敏感信息和登录凭证,实现对app账户的控制。 漏洞利用条件: WebView中setAllowFileAccessFromFileURLs 或setAllowUniversalAccessFromFileURLsAPI配置为true;(android<4.1默认true) Webview可直接被外部调用,且能加载外部可控html文件,即应用中存在设置为可被导出的Activity组件,并且组件中包含Webview调用。 漏洞影响:所有使用webview控件且开启了那两个true且没做安全策略的android app。   0x01 漏洞浅谈 webview: 显示网页的控件,基于webkit引擎。具有一般view的属性和设置,可以对url请求/页面加载渲染交互进行处理。 通过网页唤起第三方app用了scheme指定一个伪协议即可,如scheme=alipays://xxx 接收外部传入的URL参数,然后在APP内进行加载,如支付宝的qrcode=xxx。 漏洞在于webview开启了file域访问(那两个true),而且file域可以对http域访问,并且file域路径没有严格限制,所以攻击者可以通过url scheme远程打开并加载恶意html文件实现对app中的敏感信息进行窃取。 攻击流程大概就是通过访问恶意html,调用了file协议用js读取敏感文件,再通过http等协议发送到攻击者远程服务器。 伪协议启动要克隆的app,下载恶意html文件—>file协议(html)读取要克隆的app的私有文件—>把私有文件传到攻击者服务器—>私有文件copy到自己手机—>OVER!   0x02 修复方案 1. 无需file域访问:手动配置setAllowFileAccessFromFileURLs(file协议中js读取本地文件内容)或setAllowUniversalAccessFromFileURLs(file协议跨域)两个API为false 2. 需要file域访问:设置file路径白名单。 3. 加密敏感数据。 4. 严格限制包含webview调用的activity组件导出权限。   0x03 结语 要注意的是这个并不是新漏洞,很早就出现了webview跨域的安全问题(webview还有很多其他问题),一直没引起重视,现在就火了一把,这个漏洞危害还是很大,要及时更新app,避免点击不明链接。   0x04 参考资料 www.freebuf.com/articles/terminal/159787.html www.freebuf.com/articles/terminal/160544.html blogs.360.cn/360mobile/2014/09/22/webview跨源攻击分析/ blog.csdn.net/xwh_1230/article/details/79045251