漏洞预警┃三星手机缺陷使Android用户遭受远程攻击;NodeJS模块允许DOS攻击和代码注入

来源:上海控安
2020-08-14
1632
、、、


漏洞预警





三星手机中的缺陷使Android用户遭受远程攻击


漏洞信息

新研究表明, “查找我的手机 ”(大多数三星智能手机上已预装)是一个Android应用程序,其中存在一系列严重的安全漏洞,该漏洞可能使远程攻击者能够跟踪受害者的实时位置,监控电话和信息,甚至删除手机上存储的数据。葡萄牙的网络安全服务提供商Char49 在DEFCON会议上通过三星的Find My Mobile Android应用程序披露了其发现,并与Hacker News分享了细节。Char49的Pedro Umbelino在技术分析中说,”安装后,此漏洞很容易被利用,对用户造成严重影响,并可能造成灾难性影响:通过电话锁定永久拒绝服务,通过出厂重置彻底丢失数据(包括SD卡),通过IMEI严重隐含隐私和位置跟踪以及呼叫和SMS日志访问。”三星将该漏洞标记为“高风险漏洞”后,便解决了可在未修补的三星Galaxy S7,S8和S9 +设备上的漏洞。


漏洞版本

三星Galaxy S7,S8和S9 +设备


漏洞分析

三星的“查找我的手机”服务允许三星设备的所有者远程定位或锁定他们的智能手机或平板电脑,将设备上存储的数据备份到三星云,擦除本地数据,并阻止对三星支付的访问。

根据Char49的说法,该应用程序中存在四个不同的漏洞,这些漏洞可能被目标设备上安装的恶意应用程序利用,造成磁盘攻击,从而劫持了来自后端服务器的通信并监听受害者 。


l1.jpg

该漏洞源于以下事实:该应用检查设备的SD卡(”/mnt/sdcard/fmm.prop”)上是否存在特定文件,以便加载URL(“ mg.URL”),从而允许流氓应用程序以创建此文件,恶意参与者可以使用此文件来劫持与服务器的通信。通过将MG URL指向攻击者控制的服务器并强制进行注册,攻击者可以获得有关用户的许多详细信息:通过IP地址,IMEI,设备品牌,API级别,备份应用和其他一些信息,可以粗略定位用户的位置。为实现此目的,设备上安装的恶意应用程序利用漏洞利用链,该漏洞利用链利用两个不同的不受保护的广播接收器将发送到三星服务器的命令从“查找我的手机”应用程序重定向到受攻击者控制的另一台服务器上,并执行恶意命令 。恶意服务器还会将请求转发到合法服务器并检索响应,但不会在将其自身的命令注入服务器响应之前进行。在这种情况下,成功的攻击可能使黑客能够跟踪设备的位置,获取呼叫数据和短信以进行监视,锁定手机以勒索赎金以及通过恢复出厂设置来清除所有数据。毋庸置疑,该漏洞是另一个旨在保护用户免遭信息丢失的应用程序易受多种可能破坏该应用程序目的的漏洞的又一个指标。Umbelino说:“ FMM [Find My Mobile]应用程序不应具有公开可用的任意组件,并且处于导出状态。” “如果绝对必要,例如,如果其他软件包调用了这些组件,则应使用适当的权限对其进行保护。应该消除依赖于公共场所文件的存在的测试代码。”


KNodeJS模块“express-fileupload”允许DOS攻击和代码注入


漏洞信息

专家在NodeJS模块中发现一个漏洞,NodeJS模块受到CVE-2020-7699漏洞的影响,可以允许攻击者执行拒绝服务(DOS)攻击或者代码注入。据统计NodeJS模块“express-fileupload”从npm存储库下载的次数已经超过700+万次。开发人员可以从其他的存储库(包括GitHub和镜像网站)中下载安装 ,所以实际安装数量可能会更多。

影响版本

影响1.1.8之前的包express-fileupload,如果配置人员开启了parseNested选项,攻击者则发送不安全的HTTP请求可能造成拒绝服务(DOS)攻击或代码注入。

漏洞分析

对于定义JavaScript对象的缺省结构和默认值的原型在没有设置任何值的时候,指定预期的结构对它们是非常重要的。攻击者修改了JavaScript对象原型并且没有收到预期的值,很可能会使应用程序崩溃并更改行为。

由于JavaScript的传播,通过原型污染漏洞极有可能使Web应用程序崩溃或造成其他的严重后果。原型污染漏洞包括将不兼容类型的对象注入到现有对象中,达到触发可能导致拒绝服务(DoS)攻击的条件或引起代码注入(包括建立远程shell)的错误。

根据安全专家的报道,该问题是利用“express-fileupload”模块,如果开启了“ parseNested”选项来达到处罚漏洞条件的目的。

express-fileupload模块主要实现nodejs应用程序中上载和管理文件的功能,parseNested是其中的一个功能选项,它可使参数变平为嵌套对象。

因此,假设我们输入: 

    {"a.b.c": true} 

那么它在内部将会表现为 :

    {"a": {"b": {"c": true}}}

parseNested主要代码:

l2.jpg

在“ Content-Disposition” HTTP标头中提供有效负载后,攻击者可以提供“ __proto __.toString”值来触发漏洞进行攻击。

因此,使用命令express-fileupload配置和运行express服务器,发送POST数据:

l3.jpg

“ __proto__”函数可以被用于修改所有JS对象和结构继承的JavaScript的“prototype”属性。这也就说在上述的HTTP请求将可以修改“__proto __.toString”来覆盖并破坏代码中每个对象的内置“ toString”方法。其中如果Object.prototype.toString参数遭到污染,这将导致严重的错误,并且对于用户发送的所有请求,express [sic]将返回500的错误。

在易受攻击的系统上,攻击者还可以利用相同的漏洞来获取shell。对于这种攻击类型,在有存在漏洞的“express-fileupload”版本的应用程序中也可以使用模版引擎EJS(嵌入式JavaScript模块)。在express 应用程序中获取shell最快最简单的方法是使用EJS。专家表示,express应用程序中是否能使用EJS模版引擎同样存在局限性,但是攻击者可以发送的“ outputFunctionName”选项覆盖EJS的HTTP请求来触发漏洞。

下面的有效负载利用了“express-fileupload”中的原型漏洞,并且在Content-Disposition头部设置了outputFunctionName选项覆盖EJS的请求执行NodeJS“ child_process”程序

此过程可用于获取攻击者计算机的反向shell。

l4.jpg

在1.1.9版本中已经修复了该漏洞,建议使用该框架的用户从npm存储中下载最新版本。






本周安全态势分析



本周发生的事件有三星手机中的缺陷使Android用户遭受远程攻击和NodeJS模块“express-fileupload”允许DOS攻击和代码注入。


1

三星手机的 “查找我的手机 ”(大多数三星智能手机上已预装)是一个Android应用程序,其中存在一系列严重的安全漏洞,此漏洞很容易被利用,对用户造成严重影响,并可能造成灾难性影响:通过电话锁定永久拒绝服务,通过出厂重置彻底丢失数据(包括SD卡),通过IMEI严重隐含隐私和位置跟踪以及呼叫和SMS日志访问。”三星将该漏洞标记为“高风险漏洞”后,便解决了可在未修补的三星Galaxy S7,S8和S9 +设备上使用的漏洞。

2

NodeJS模块express-fileupload可以利用原型污染漏洞(CVE-2020-7699)漏洞对目标服务器进行DOS攻击或者进行代码注入。对攻击者修改了JavaScript对象原型并且没有收到预期的值,可以使应用程序崩溃并更改行为。由于JavaScript的传播,通过原型污染漏洞极有可能使Web应用程序崩溃或造成其他的严重后果。原型污染漏洞包括将不兼容类型的对象注入到现有对象中,达到触发可能导致拒绝服务(DoS)条件或引起代码注入(包括建立远程shell)的错误。



收藏
点赞
2000