"/>
该文章仅供安全学习,切勿用作非法用途,一切后果自负! 转载请注明出处,感谢! 0x06 IOS 通信加密上一篇文章中我们讲解了「IOS 手势密码安全」,本文则对第四个 IOS 渗透测试基础项中的大项「IOS 通信加密」做了相关的讲解。 本章的内容主要分为四个部分:
接下来让我们一起看下相关的操作吧。 1.1 问题说明检测移动客户端和服务器之前的通信是否强制使用了 https 加密信道,如果未使用 https 加密通道,则存在中间人攻击风险。 1.2 测试步骤使用抓包工具进行抓包查看是否使用 https,如下图抓包看到的就是使用 http。 而下图则是强制使用 https 加密信道。 1.3 修复建议建议移动客户端同服务器进行通信传输时信道使用 SSL 加密信道进行,同时保证加密信道的本身安全(SSLV2,SSLV3 已被证明存在漏洞,建议至少使用 TLSV1.1 以上的算法),或者是在通信过程中自己实现类似于 TLS 协议的算法,但同时也要保证自实现算法的安全性。 2. 访问控制2.1 问题说明检测移动客户端访问的 URL 是否仅能由手机移动客户端访问。是否可以绕过登录限制直接访问登录后才能访问的页面,对需要二次验证的页面(如私密问题验证)能否直接绕过验证,如果允许 PC 端访问则会降低漏洞利用难度。 2.2 测试步骤将抓包工具在 App 抓取到的数据包中应用的链接放入 PC 端中访问,看是否能正常访问。下图中是将 App 端的登录页面放入 PC 端,发现可以正常访问,说明存在该问题。当然这个也需要看 App 的需求,有些 App 需要做到多端同步。 2.3 修复建议建议服务器进行相应的访问控制,控制对应页面仅能通过手机移动客户端访问。同时进行页面访问控制,防止绕过登陆直接访问页面的非法访问。 3. 关键数据加密和校验3.1 问题说明检测移动客户端和服务器之前的通信是否使用了加密通信,其关键的数据是否进行了加密和校验,如果没有则存在数据包篡改风险。 3.2 测试步骤抓取数据包查看数据交互请求的关键数据是否加密处理,如登录时的密码未做任何的加密、数据包未做签名、敏感信息未做身份校验等。 下图中密码进行了加密,同时还有 sign 签名做强校验。 3.3 修复建议测试移动客户端程序提交数据给服务端时,密码等关键字段是否进行了加密和校验,防止恶意用户嗅探和修改用户数据包中的密码等敏感信息。 4. 证书有效性验证4.1 问题说明验证移动客户端和服务器之间是否存在双向验证的机制,同时确认此机制是否完善,服务器是否以白名单的方式对发包者的身份进行验证,如果不存在证书的双向验证机制则存在中间人攻击的风险。 4.2 测试步骤使用抓包软件进行抓包,检测能否正常解密 HTTPS 通信数据,若能则 APP 未验证证书有效性。下图中使用 BurpSuite 对其抓包,可以发现当 BurpSuite 开启了代理后对 App 进行相关操作,App 拒绝了我们的请求,而拒绝的原因就是证书无效,说明该 App 进行了证书的双向强校验。 如果我们在开启了抓包工具的代理进行抓包能正常发送相关请求,这就说明 App 并没有做证书的有效性校验。 4.3 修复建议建议移动客户端对 SSL 证书进行校验。 上一篇:阿里云被暂停工信部网络安全威胁信息共享平台合作单位6... 下一篇:EISS-2021上海站PPT|廖超豪/合合信息安全运营负责人(企业自建SOC安全运营的探索与实践) |