CVE-2016-6771: Android语音信箱伪造漏洞分析

谷歌近期对外公布了12月份的安全公告,其中包含腾讯安全平台部终端安全团队提交的语音信箱伪造漏洞(CVE-2016-6771),该漏洞可导致恶意应用进行伪造语音信箱攻击。目前谷歌已经发布补丁,本文将对该漏洞进行分析。

漏洞概述

Phone应用中存在一处未受保护的暴露组件com.android.phone.vvm.omtp.sms.OmtpMessageReceiver,该组件接收来自外部的Intent,解析承载的VVM协议,构造语音信箱。该漏洞可以被本地恶意应用触发,进行伪造语音信箱攻击。该漏洞属于比较常规的暴露组件问题。

漏洞详情

在对AOSP中系统应用进行分析时,发现系统应用TeleService.apk(com.android.phone)存在一处暴露组件[……]

MORE

APP漏洞扫描器之未使用地址空间随机化

APP漏洞扫描器之未使用地址空间随机化-阿里聚安全 plibConfig({name:’aq’,group:’sd’,dir:’mobi-aq’,version:’0.3.10′}); var cnzz_protocol = ((“https:” == document.location.protocol) ? ” https://” : ” http://”);document.write(unescape(“%3Cspan id=’cnzz_stat_icon_1253553028’%3E%3C/span%3E%3Cscript src='” + cnzz_protocol + “w.cnzz.com/q_stat.php%3Fid%3D1253553028′ type=’text[……]

MORE

一个目录穿越引发的注入及后续——XG SDK漏洞回顾与思考

0x00 简介

XG SDK是一个流行的Android app推送SDK,有不少流行Android app均在使用,本文分析的版本主要针对100001_work_weixin_1.0.0.apk所使用的版本。

漏洞最初在2016年4月份的时候提交给了某云网站,厂商已经确认,但由于网站持续“升级”的缘故,不太可能公开细节了。后续漏洞也已经提交给了TSRC,时至现在,相关漏洞均已经完全修复,漏洞已经不影响使用该SDK的app了,因此本文决定对相关技术细节予以分享,并补充有关该漏洞后续的一些研究。

0x01 漏洞分析

XG SDK会周期性地启动一个libtpnsWatchdog.so的可执行文件,作为看门狗保活应用,并随机在55000~56000端口监听任意地址。
[cray[……]

MORE

傲游浏览器漏洞系列(下)- 客户端 SQL 注入和代码执行漏洞

寻找客户端 SQL 注入漏洞

目前为止我们已经使用 catchform 方法来利用 UXSS 漏洞,但是利用暴露的 catchform 方法在 mxbrowser_default 数据库中触发客户端 SQL 注入也是可行的,这可以远程破坏数据库的完整性和机密性。

考虑到下面的代码取自 com.mx.browser.a.f 类。当域的用户名/密码行不存在时,使用参数化的 SQL 语句将数据插入本地数据库。当该域的用户名/密码行已经存在时,使用动态字符串链接构建 UPDATE SQL 语句。恶意网页控制 b 变量(用户名)和 a 变量(host),但不直接控制 c 变量(密码),因为密码是被加密编码过的。

 [……]

MORE

傲游浏览器漏洞系列(上)- 任意文件写入,UXSS

Maxthon Browser(傲游浏览器) 又是一个当下比较流行的 Android 浏览器,未使用Android 的 stock 浏览器(AOSP)。我在 Android 版的浏览器中发现了一些有趣的甚至有些严重的漏洞,可能导致远程代码执行和信息泄漏。

漏洞要点:

  • 暴露的 JavaScript 接口导致任意文件写入 – 恶意网页可以强制浏览器下载zip文件,浏览器将其放在 SD 卡上,然后通过调用带有 URL 参数的installWebApp方法解压缩。由于缺少对 zip 文件所包含的文件名进行输入验证,攻击者可以制作一个恶意的 zip 文件,造成路径穿越来覆盖浏览器沙盒中的任意文件。这个漏洞能被用来实现远程代码执行,相关内容我将在后面演示。
  • 登录页面暴露的 Java[……]

MORE

彻底理解Android Binder通信架构

基于Android 6.0的源码剖析, 本文深度剖析Binder IPC过程, 这绝对是一篇匠心巨作,从Java framework到Native,再到Linux Kernel,带你全程看Binder通信过程.

一. 引言

1.1 Binder架构的思考

Android内核是基于Linux系统, 而Linux现存多种进程间IPC方式:管道, 消息队列, 共享内存, 套接字, 信号量, 信号. 为什么Android非要用Binder来进行进程间通信呢. 从我个人的理解角度, 曾尝试着在知乎回答同样一个问题 为什么Android要采用Binder作为IPC机制?. 这是我第一次认认真真地在知乎上回答问题, 收到很多网友的点赞与回复, 让我很受鼓舞, 也决心分享更多优先地文章回报读者和粉丝,[……]

MORE

Android逆向随笔之遇见MultiDex

0x00 Who is Multidex

很多大厂的Android App因为业务量大,引用库多导致其apk包中的类于方法剧增。这样就有可能出现因为方法数过多导致编译失败的情况。产生这个问题的主因是dex文件格式的限制。一个DEX文件中method个数采用使用原生类型short来索引文件中的方法,也就是4个字节共计最多表达65536个method,field/class的个数也均有此限制。对于DEX文件,则是将工程所需全部class文件合并且压缩到一个DEX文件期间,也就是Android打包的DEX过程中,单个DEX文件可被引用的方法总数被限制为65536。

为解决这个问题,谷歌推出了Multidex技术,简单来说就是将一个apk中的dex文件拆分成多个分主次先后加载,当然在这之[……]

MORE

Samsung Pay漏洞深度剖析

2016年7月14号,来自美国加利福尼亚州莫德斯托社区学院的Salvador Mendoza发表了一篇题为《Samsung Pay:Tokenized Numbers, Flaws andIssues》的文章,称发现了Samsung Pay Token的安全问题。同年8月4号,其在Black Hat USA大会上对此项攻击进行了宣讲和演示(针对VISA卡片进行)。对此,国内各大媒体纷纷予以跟踪报道,那么Samsung Pay是不是真的这么不堪一击呢?

samsungpay1.jpg

一、还原Samsung Pay破解事件完整情况

Salvador Mendoza使用android系统的adb命令对Samsung Pay进行调试,获取了应用数据库,同时反编译了Samsung Pay的相关应用程序,从而实现了对[……]

MORE