Android 黑客入门 Http与Https协议

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

上篇文章中提及了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权限的限制,其实以后会越来越安全了。

相关文章
|
5天前
|
PHP Android开发
android通过http上传文件,服务器端用php写(原创)
android通过http上传文件,服务器端用php写(原创)
18 4
|
3天前
|
监控 Unix 应用服务中间件
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
|
3天前
|
缓存 安全 前端开发
探索HTTP协议:网络通信的基石
探索HTTP协议:网络通信的基石
|
3天前
|
缓存 自然语言处理 前端开发
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
|
3天前
|
安全 Android开发
Android之OKHttp基本使用和OKHttp发送https请求安全认证
Android之OKHttp基本使用和OKHttp发送https请求安全认证
12 0
|
2天前
|
数据库 Android开发
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
|
3天前
|
JSON Java API
Android 深入Http(5)从Retrofit源码来看Http,最新Android开发面试解答
Android 深入Http(5)从Retrofit源码来看Http,最新Android开发面试解答
http协议 报文 给你讲明白咯,web开发基础
http协议 报文 给你讲明白咯,web开发基础
|
5天前
|
应用服务中间件 网络安全 nginx
Client sent an HTTP request to an HTTPS server
Client sent an HTTP request to an HTTPS server
13 0
|
5天前
|
存储 缓存 JSON
【JavaEE】HTTP应用层协议
【JavaEE】HTTP应用层协议
14 1