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权限的限制,其实以后会越来越安全了。

相关文章
|
1月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
17天前
|
Java 网络架构 Kotlin
kotlin+springboot入门级别教程,教你如何用kotlin和springboot搭建http
本文是一个入门级教程,介绍了如何使用Kotlin和Spring Boot搭建HTTP服务,并强调了Kotlin的空安全性特性。
44 7
kotlin+springboot入门级别教程,教你如何用kotlin和springboot搭建http
|
16天前
|
安全 网络协议 算法
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
92 4
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
|
17天前
|
存储 网络安全 对象存储
缺乏中间证书导致通过HTTPS协议访问OSS异常
【10月更文挑战第4天】缺乏中间证书导致通过HTTPS协议访问OSS异常
41 4
|
15天前
|
缓存 网络协议 前端开发
Web 性能优化|了解 HTTP 协议后才能理解的预加载
本文旨在探讨和分享多种预加载技术及其在提升网站性能、优化用户体验方面的应用。
|
19天前
|
JavaScript 安全 Java
谈谈UDP、HTTP、SSL、TLS协议在java中的实际应用
下面我将详细介绍UDP、HTTP、SSL、TLS协议及其工作原理,并提供Java代码示例(由于Deno是一个基于Node.js的运行时,Java代码无法直接在Deno中运行,但可以通过理解Java示例来类比Deno中的实现)。
45 1
|
28天前
|
安全 网络协议 网络安全
在实现HTTPS时,有哪些常见的安全协议
在实现HTTPS时,有哪些常见的安全协议
|
29天前
|
前端开发 JavaScript 安全
深入解析 http 协议
HTTP(超文本传输协议)不仅用于传输文本,还支持图片、音频和视频等多种类型的数据。当前广泛使用的版本为 HTTP/1.1。HTTPS 可视为 HTTP 的安全增强版,主要区别在于添加了加密层。HTTP 请求和响应均遵循固定格式,包括请求行/状态行、请求/响应头、空行及消息主体。URL(统一资源定位符)用于标识网络上的资源,其格式包含协议、域名、路径等信息。此外,HTTP 报头提供了附加信息,帮助客户端和服务端更好地处理请求与响应。状态码则用于指示请求结果,如 200 表示成功,404 表示未找到,500 表示服务器内部错误等。
29 0
深入解析 http 协议
|
1月前
|
数据采集 JSON API
🎓Python网络请求新手指南:requests库带你轻松玩转HTTP协议
本文介绍Python网络编程中不可或缺的HTTP协议基础,并以requests库为例,详细讲解如何执行GET与POST请求、处理响应及自定义请求头等操作。通过简洁易懂的代码示例,帮助初学者快速掌握网络爬虫与API开发所需的关键技能。无论是安装配置还是会话管理,requests库均提供了强大而直观的接口,助力读者轻松应对各类网络编程任务。
99 3
|
1月前
|
机器学习/深度学习 JSON API
HTTP协议实战演练场:Python requests库助你成为网络数据抓取大师
在数据驱动的时代,网络数据抓取对于数据分析、机器学习等至关重要。HTTP协议作为互联网通信的基石,其重要性不言而喻。Python的`requests`库凭借简洁的API和强大的功能,成为网络数据抓取的利器。本文将通过实战演练展示如何使用`requests`库进行数据抓取,包括发送GET/POST请求、处理JSON响应及添加自定义请求头等。首先,请确保已安装`requests`库,可通过`pip install requests`进行安装。接下来,我们将逐一介绍如何利用`requests`库探索网络世界,助你成为数据抓取大师。在实践过程中,务必遵守相关法律法规和网站使用条款,做到技术与道德并重。
41 2

热门文章

最新文章