资讯专栏INFORMATION COLUMN

Android安全之Https中间人攻击漏洞

dabai / 1471人阅读

摘要:安全之中间人攻击漏洞概述,是一种网络安全传输协议,利用来对数据包进行加密以提供对网络服务器的身份认证,保护交换数据的隐私与完整性。在方法中使用,信任所有,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。

Android安全之Https中间人攻击漏洞

0X01 概述

HTTPS,是一种网络安全传输协议,利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护交换数据的隐私与完整性。
中间人攻击,Man-in-the-middle attack,缩写:MITM,是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。
https在理论上是可以抵御MITM,但是由于开发过程中的编码不规范,导致https可能存在MITM攻击风险,攻击者可以解密、篡改https数据。
  

0X02 https漏洞

 
Android https的开发过程中常见的安全缺陷:
1)在自定义实现X509TrustManager时,checkServerTrusted中没有检查证书是否可信,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
2)在重写WebViewClient的onReceivedSslError方法时,调用proceed忽略证书验证错误信息继续加载页面,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
3)在自定义实现HostnameVerifier时,没有在verify中进行严格证书校验,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
4)在setHostnameVerifier方法中使用ALLOW_ALL_HOSTNAME_VERIFIER,信任所有Hostname,导致通信过程中可能存在中间人攻击,造成敏感数据劫持危害。
 
 

0X03 漏洞案例

 
案例一:京东金融MITM漏洞
京东金融Ver 2.8.0由于证书校验有缺陷,导致https中间人攻击,攻击者直接可以获取到会话中敏感数据的加密秘钥,另外由于APP没有做应用加固或混淆,因此可以轻松分析出解密算法,利用获取到的key解密敏感数据。
御安全扫描结果:

如下是登陆过程中捕获到的数据:

其中的secretkey用于加密后期通信过程中的敏感数据,由于APP中使用的是对称加密,攻击者可以还原所有的通信数据。
 
案例二:中国移动和包任意消费漏洞
HTTPS证书校验不严格,可被MITM;
加密算法不安全,可被破解;
关键数据保存在sdcard卡上,可被任意访问;
代码混淆度低,业务逻辑,关键数据泄漏;
消息签名算法比较简单,数据可被修改;
通信数据如下:

POST https://mca.cmpay.com:28710/ccaweb/CCLIMCA4/2201194.dor HTTP/1.1
Cookie: JSESSIONID=CHGmYSZLTMRAx_1sSEuUP6Q4vmRI9gWiRPM6ANGnH7eZWv0NhErE!221531807
.......
Content-Length: 521
Host: mca.cmpay.com:28710
Connection: Keep-Alive
Cookie: JSESSIONID=CHGmYSZLTMRAx_1sSEuUP6Q4vmRI9gWiRPM6ANGnH7eZWv0NhErE!221531807
Cookie2: $Version=1
866697029909260201603241008185gye5tKk6EPB4iliO722011944.3.82Android_21-1794*1080-HUAWEI GRA_UL1020093CAS000169918666970299092601050:a7:2b:c5:e2:d8

在用户开启免密支付的前提下,结合以上安全问题,可以实现本地或远程攻击,直接盗取和包用户资金,如给任意账号充值等,给用户带来直接经济损失。
 

0X04 安全建议

 
1) 建议自定义实现X509TrustManager时,在checkServerTrusted中对服务器信息进行严格校验
2)在重写WebViewClient的onReceivedSslError方法时,避免调用proceed忽略证书验证错误信息继续加载页面
3)在自定义实现HostnameVerifier时,在verify中对Hostname进行严格校验
4)建议setHostnameVerifier方法中使用STRICT_HOSTNAME_VERIFIER进行严格证书校验,避免使用ALLOW_ALL_HOSTNAME_VERIFIER
 
 

0X05 参考

https://en.wikipedia.org/wiki...
https://en.wikipedia.org/wiki...
http://drops.wooyun.org/tips/...
 
(腾讯御安全技术博客)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/13189.html

相关文章

  • Android安全开发安全使用HTTPS

    摘要:必须保证其签发的每个证书的用户身份是唯一的。阿里聚安全对开发者建议阿里聚安全的漏洞扫描器发现,很多都存在使用不当的风险。正确使用能有效抵御在用户设备上安装证书进行中间人攻击和攻击。阿里聚安全推出了一个能完美解决这个问题的安全组件。 showImg(https://segmentfault.com/img/remote/1460000007097237?w=518&h=220); 1、H...

    kidsamong 评论0 收藏0
  • Android 安全开发 ZIP 文件目录遍历

    摘要:阿里聚安全的应用漏洞扫描服务,可以检测出应用的文件目录遍历风险。阿里聚安全对开发者建议对重要的压缩包文件进行数字签名校验,校验通过才进行解压。 1、ZIP文件目录遍历简介 因为ZIP压缩包文件中允许存在../的字符串,攻击者可以利用多个../在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件。如果被覆盖掉的文件是动态链接so、dex或者odex文件,轻则产生本地拒绝服务漏洞...

    sorra 评论0 收藏0
  • Android 安全开发 ZIP 文件目录遍历

    摘要:阿里聚安全的应用漏洞扫描服务,可以检测出应用的文件目录遍历风险。阿里聚安全对开发者建议对重要的压缩包文件进行数字签名校验,校验通过才进行解压。 1、ZIP文件目录遍历简介 因为ZIP压缩包文件中允许存在../的字符串,攻击者可以利用多个../在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件。如果被覆盖掉的文件是动态链接so、dex或者odex文件,轻则产生本地拒绝服务漏洞...

    kbyyd24 评论0 收藏0
  • Android安全开发浅谈密钥硬编码

    摘要:简介在阿里聚安全的漏洞扫描器中和人工安全审计中,经常发现有开发者将密钥硬编码在代码文件中,这样做会引起很大风险。阿里聚安全开发建议通过以上案例,并总结下自己平时发现密钥硬编码的主要形式有密钥直接明文存在文件中,这是最不安全的。 1 简介 在阿里聚安全的漏洞扫描器中和人工APP安全审计中,经常发现有开发者将密钥硬编码在Java代码、文件中,这样做会引起很大风险。信息安全的基础在于密码学,...

    zone 评论0 收藏0
  • Android安全WebViewUXSS漏洞

    摘要:安全之漏洞前言是我们比较熟悉的一种攻击方式,包括存储型反射型等,但通用型另外一种不同的漏洞类型,主要体现在漏洞的载体和影响范围上。 Android安全之WebViewUXSS漏洞 0X01 前言 XSS是我们比较熟悉的一种攻击方式,包括存储型XSS、反射型XSS、DOM XSS等,但UXSS(通用型XSS)另外一种不同的漏洞类型,主要体现在漏洞的载体和影响范围上。XSS问题源于某一个W...

    happyhuangjinjin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<