本文叙述的是作者发现谷歌浏览器Chrome阅览辅佐插件(Read&Write Chrome extension)1.8.0.139版别同源战略(SOP)绕过缝隙的进程。该缝隙在于Read&Write插件短少对正常交互网页恳求源的安全查看,导致恣意网页都能够调用Read&Write插件的后台特权页面API来履行多种存在危险的操作。因为该版别插件的在线下载使用量较大,在缝隙上报前估量有八百万用户受到影响。
缝隙介绍
比方,使用名为 “thGetVoices”办法的后台API调用办法,能够用插件履行一个恣意URL链接的检索,并用postMessage办法来进行呼应通讯。经过这种办法的API歹意调用,攻击者能够绑架Read&Write插件去读取一些歹意且未经验证的会话数据。
作为验证,作者在文末 *** 了一个缝隙使用PoC视频,在安装了存在该缝隙的Read&Write插件之后,在进行使用操作时,能够使用缝隙长途读取到用户的Gmail邮箱地址信息。在缝隙上报之后,Read&Write插件开发方Texthelp公司敏捷修正了缝隙,并于第二天释出了更新补丁。现在,新版别的Read&Write插件已不存在该缝隙。
缝隙剖析
Chrome的Read&Write插件使用名为“inject.js”的Google浏览器内置脚本(Content Script)来向比如Google Docs在内的各种在线文档页面刺进一个自界说工具栏,以便利读者用户能够使用该插件进行文档读写。默许情况下,此脚本将会向一切HTTP和HTTPS源履行刺进,插件的使用说明中已界说了这一点:
...trimmed for brevity...
"content_scripts": [
{
"matches": [ "https://*/*", "http://*/*" ],
"js": [ "inject.js" ],
"run_at": "document_idle",
"all_frames": true
}
],
...trimmed for brevity...
在 “inject.js” 脚本文件中,存在一个事情监听函数addEventListener,任何被刺进 “inject.js” 脚本文件的交互网页,假如以“postMessage”办法向插件发送呼应音讯,都能被该函数捕获到:
window.addEventListener(“message”, this.onMessage)
这个addEventListener函数还会调用另一个名为“this.onMessage”的函数,该函数用于处理恣意发往页面窗口的postMessage音讯:
function onMessage() {
void 0 != event.source && void 0 != event.data && event.source == window && "1757FROM_PAGERW4G" == event.data.type && ("connect" == event.dat *** mand ? chrome.extension.sendRequest(event.data, onRequest) : "ejectBar" == event.dat *** mand ? ejectBar() : "th-closeBar" == event.dat *** mand ? chrome.storage.sync.set({
enabledRW4GC: !1
}) : chrome.extension.sendRequest(event.data, function(e) {
window.postMessage(e, "*")
}))
}
postMessage() 办法:window.postMessage() 办法能够安全地完成跨源通讯。一般,关于两个不同页面的脚本需求具有同源战略才干通讯。window.postMessage() 办法被调用时,会在一切页面脚本履行结束之后(e.g., 在该办法之后设置的事情、之前设置的timeout 事情,etc.)向方针窗口派发一个 MessageEvent 音讯。 该MessageEvent音讯有四个特点需求留意: message 特点表明该message 的类型; data 特点为 window.postMessage 的之一个参数;origin 特点表明调用window.postMessage() 办法时调用页面的当时状况; source 特点记载调用 window.postMessage() 办法的窗口信息。
在上述代码中,能够看到onMessage()会把一切接收到的postMessage音讯经过“chrome.extension.sendRequest”办法发送到Read&Write插件的后台页面。别的,对这些音讯的呼应将传递回onMessage()函数,然后再经过其传递回Web页面中去。这个进程,实际上就在正常的Web拜访页面和Read&Write插件后边之间形成了一个署理机制。
从Read&Write插件的使用说明中,能够发现Read&Write插件中存在许多后台页面:
...trimmed for brevity...
"background": {
"scripts": [
"assets/google- *** ytics-bundle.js",
"assets/moment.js",
"assets/thFamily3.js",
"assets/thHashing.js",
"assets/identity.js",
"assets/socketmanager.js",
"assets/thFunctionManager.js",
"assets/equatio-latex-extractor.js",
"assets/background.js",
"assets/xmlIncludes/linq.js",
"assets/xmlIncludes/jszip.js",
"assets/xmlIncludes/jszip-load.js",
"assets/xmlIncludes/jszip-deflate.js",
"assets/xmlIncludes/jszip-inflate.js",
"assets/xmlIncludes/ltxml.js",
"assets/xmlIncludes/ltxml-extensions.js",
"assets/xmlIncludes/testxml.js"
[1] [2] [3] 黑客接单网
http://ios.acfun.tv补白:学习intval特性或许导致安全缝隙http://huaidan.org/archives/3047.htmlselect * from admin whe...
所以,咱们的定论是,普通群众不必过于忧虑无人机的安全问题,反而应该更注重越来越多的走入普通人家的智能设备的安全问题。 趁便提一下,这块咱们团队亦有注重(比方相同是参加了GeekPwn 2019和央视3...
+ 7ms: Channel 21, connect();那么详细怎么做呢?就要用进犯者的办法反击进犯者。 说起来简略,做起来或许就会发现很难,可是咱们可以凭借咱们本身的优势,经过事务数...
当受害者遭后门侵略并被进犯者操控时会发作什么?这是一个很难答复的问题,即便经过逆向工程代码也难以彻底解析。而在本文中,咱们将剖析Sednit安排在近期行为中发送到方针的指令。 Sednit安排,也被称...
许多脚本小子正在运用兵器化的物联网缝隙运用脚本,运用供货商后门帐户进犯中兴路由器。具有挖苦意味的是,这不是脚本中仅有的后门。Scarface,代码的传播者也布置了自定义后门来黑那些运用该脚本的脚本小子...
根据漏洞文件为repo_mirror.go这个信息锁定更新的commit,commit主要为 #6593和#6595继续si网络赌博输了多万左右,报警的话钱能要回来吗?, 在今年的温哥华Pwn2Own...