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

相关文章
|
2天前
|
Android开发
Android中Glide加载Https图片失败的解决方案
Android中Glide加载Https图片失败的解决方案
10 1
|
2天前
|
存储 算法 安全
[计算机网络]---Https协议
[计算机网络]---Https协议
|
8天前
|
安全 网络协议 算法
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
|
9天前
|
网络协议 安全 算法
HTTP协议与HTTPS协议
HTTP协议与HTTPS协议
|
10天前
|
数据采集 缓存 网络协议
静态代理IP是否支持HTTP和HTTPS?
静态代理IP支持HTTP、HTTPS、FTP、Socks5等协议,HTTP协议因其简单、灵活而常用,通常比HTTPS速度快,因无需加密处理。HTTP代理比SOCKS5代理通常更快,因为HTTP专注于HTTP请求,而SOCKS5处理多种网络流量。静态HTTP代理适合浏览器和爬虫,SOCKS5代理支持更多协议,如TCP、UDP。选择取决于应用场景和需求。
|
14天前
|
安全 Go
解决https页面加载http资源报错
请注意,混合内容可能导致安全性问题,因此在使用上述方法时要小心。最好的方式是尽量减少或完全消除混合内容,以确保页面的安全性。
19 0
|
19天前
|
安全 网络安全 数据安全/隐私保护
HTTPS协议
HTTPS协议
22 0
|
19天前
|
网络协议 网络安全 数据安全/隐私保护
http和https的区别!
http和https的区别!
|
安全 网络安全 Android开发
|
2月前
|
前端开发
webpack如何设置devServer启动项目为https协议
webpack如何设置devServer启动项目为https协议
166 0