Android 黑客入门 Http与Https协议

上篇文章中提及了Android的JS脚本漏洞问题,调用addJavascriptInterface的编译必须为API 17及以上,为了兼容更多的设备,App和第三方框架程序经常用低的API版本编译,所以即使运行在打了补丁程序的Android 4.2, 4.3或4.4的设备上,App仍存在漏洞攻击风险。

代码的执行意味着对设备的无限制访问, 以futex漏洞为例(CVE-2014-3153),它影响当前使用的每个Linux内核版本,包括安卓系统以及最近第一次被成功 root的Galaxy S5 。尽管他们不是等价的,但我们还是应该养成“远程代码执行”与“root权限”在严重等级上等价的习惯,因为迟早,一个下定决心的黑客将可能从一个地方蹦到另一个地方,获取设备的完全控制权。

我们来验证一下漏洞到底有多容易被利用。

我们来测试 通过中间代理 攻击劫持 非安全的javascript下载,并注入一些javascript脚本来探查addJavascriptInterface漏洞。

我设置了一个充当透明Web Proxy 的wifi无线接入点(LP)。设置了对任何接入此设备通过HTTP请求任何脚本时都注入恶意代码。 即使当LP不受控制时,DNS毒化或ARP缓存欺骗等技术也可以用来实现中间人代理。或者可以安装一个模仿成合法LP的假LP。也就是说,可以有各种方法实现中间人的代理,使用wifi的任何人都将通过我们的代理访问网络,为什么最好不要连接到非安全的wifi,这也是其中之一的原因。

javascript的脚本是具有动态性的,意味着我们不需要检测特定的程序或框架程序以作为目标。当运行时,恶意代码扫描整个javascript命名空间中的对象,查找不正确地使用了addJavascriptInterface API的对象,然后对每个进行漏洞测试。如果没有找到漏洞,它就退出。如果成功了,它将运行一个shell命令启动某个app。

function findVulnerableObject() {
   for (var prop in window) {
   try {
       // If getClass() doesn’t throw, the object is vulnerable
       window[prop].getClass();
       return window[prop];
   }catch(e) { ……}  
    return null;
   }

后来成功的运行了,如果动态更改js代码,也是可以运行的,通过查看TCP/IP包和监控轨迹,很快发现很多框架程序只是联合使用了addJavascriptInterface和非安全HTTP下载的罪魁祸首。

结论——可以看出,通过使用相对简单的中间代理人技术,无需特定的应用程序、设备、场景、就可以远程运行一些脚本程序。

因此,建议开发者,当连接到一个不可信的wi-fi无线网络时不要使用任何Android应用程序来显示广告,建议用户,尽量不要连接不可信的Wifi,没有密码则更为危险,随时会被抓包、攻破、篡改,分析信息。

在调查的框架程序中只有少数使用Https,也就意味着任何使用这些框架程序的app在非安全地下载javascript时也易受到攻击。去年的调查数据还是有将近40%的程序在使用http,不过一些海外市场已经强制要求使用Https,苹果也不例外。

现在新的6.0 和 7.0 牛轧糖 安卓版本中,权限代理回到了程序申请,这意味着未来的app将更为安全,如果用户不同意,则无法处理,而且无法一次性永久申请权限,加之Root权限的限制,其实以后会越来越安全了。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/237770

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。