移动APP渗透测试方案 展示5个方面总结3种常见漏洞—转载绿盟科技

简介: 移动APP渗透测试方案 展示5个方面总结3种常见漏洞 发布时间:2017年10月26日 10:47    浏览量:1193  绿盟科技这几天连出渗透测试文章,真是干货啊。

移动APP渗透测试方案 展示5个方面总结3种常见漏洞

发布时间:2017年10月26日 10:47    浏览量:1193

 

绿盟科技这几天连出渗透测试文章,真是干货啊。之前安全加介绍了金融行业 实战微信银行渗透测试, 运营商 渗透测试实战 ,今天让我们来说说移动APP渗透测试方案,这涉及安全威胁分析及风险、APP安全测试内容及流程、测试要点。

BTW:昨天的 渗透测试 的流程及渗透测试相关概念,值得回顾。另外,本文的最后面,我们把渗透测试的文章形成了一个列表,供大家参考。

APP安全测试方案

安全威胁分析

面临的主要风险

APP安全测试内容

还有最重要的:服务器和业务逻辑安全

安全测试流程

移动APP安全测试要点

新技术新业务移动APP评估思路

在这次的移动APP安全测试实例中,工作小组主要通过如下7个方向,进行移动终端APP安全评估:

运营商自动化APP测评思路

运营商自主开发的自动化APP安全检测工具,通过"地、集、省"三级机构协作的方式,来完成移动终端APP安全检测与评估。APP测试思路如下:

安全检测要点

Allowbackup漏洞

AndroidManifest.xml文件中allowBackup属性值被设置为true。当allowBackup标志为true时,用户可通过adb backup来进行对应用数据的备份,在无root的情况下可以导出应用中存储的所有数据,造成用户数据的严重泄露。

整改建议

将参数android:allowBackup属性设置为false,不能对应用数据备份。

WebView漏洞

应用中存在WebView漏洞,没有对注册JAVA类的方法调用进行限制,导致攻击者可以利用反射机制调用未注册的其他任何JAVA类,最终导致javascript代码对设备进行任意攻击。

整改建议

通过在Java的远程方法上面声明一个@JavascriptInterface 来代替addjavascriptInterface;

在使用js2java的bridge时候,需要对每个传入的参数进行验证,屏蔽攻击代码;

Note :控制相关权限或者尽可能不要使用js2java 的bridge 。

关键数据明文传输

应用程序在登录过程中,使用http协议明文传输用户名和密码,并未对用户名和密码进行加密处理。通过监控网络数据就可以截获到用户名和用户密码数据,导致用户信息泄露,给用户带来安全风险。

整改建议

在传输敏感信息时应对敏感信息进行加密处理。

任意账号注册

使用手机号133*****887注册某个APP,获取验证码46908;

在确认提交时,拦截请求,修改注册的手机号码,即可注册任意账号,这里修改为1338*****678(任意手机号);

分别使用133*****887和133*****678(任意手机号)登录,均可以通过验证登录,看到最终结果。

整改建议

注册过程最后的确认提交时,服务器应验证提交的账号是否是下发验证码的手机号。

登录界面可被钓鱼劫持

应用存在钓鱼劫持风险。应用程序没有做防钓鱼劫持措施,通过劫持应用程序的登录界面,可以获取用户的账号和密码,可能导致用户账号信息的泄露。

整改建议:

应用程序自身通过获取栈顶activity,判断系统当前运行的程序,一旦发现应用切换(可能被劫持),给予用户提示以防范钓鱼程序的欺诈。

获取栈顶activity(如下图),当涉及敏感activity(登录、交易等)切换时,判断当前是否仍留在原程序,若不是则通过Toast给予用户提示。

使用HTML5架构或android+HTML5混合开发,实现登陆、支付等关键页面,降低被劫持的风险。

移动APP典型安全漏洞

在对移动APP的渗透测试工作中个,笔者总结了几个常见的移动APP安全漏洞,包括图形验证码逻辑后门、用户敏感信息泄露、开发商被渗透,各位经常从事APP开发工作的朋友们,需要引起注意了。

图形验证码逻辑后门

案例概述

A公司是一个已经上市的信息科技公司,国内多家商业银行都是其客户。在分析A公司的移动银行产品时,发现产品的图形验证码机制存在逻辑后门可以被绕过,利用这个缺陷可以窃取大量用户账号。由于外包团队的代码复用,我们已经在至少两家商业银行的移动银行系统中复现了这个安全问题。

后果:大规模账号暴力破解攻击。

一般来说,大部分用户都习惯将移动银行密码设置为六位数字,而且查询密码和交易密码也有很大的概率设置为相同的。攻击者可以查找该地区的手机号码段范围作为登录用户名,以六位数字组成的密码字典进行暴力破解,几十万移动银行帐户信息唾手可得。

用户敏感信息泄露

案例概述

B公司也是一家上市的科技公司,其金融客户遍布全国,采用B公司移动银行方案的客户包 括至少两家全国性股份制商业银行和多家城市商业银行。在分析B公司的移动银行产品安全性时,发现没有关闭服务端的调试接口,造成大量的用户敏感信息泄露。这种问题其实也比较常见,往往是外包开发完成后上线过程的疏忽造成的,实际上更常见的例子是Android客户端通过logcat输出调试信息的问题。

调试接口会将用户转账的详细信息输出到 web 目录的 test.log 文件中。攻击者可以通过浏览器直接访问到这个 log文件,该系统的每一笔转账交易都记录在其中,从中可以获取大量的用户账号、手机号、卡号和交易密码等信息。

开发商被渗透

案例概述

国内某漏洞平台曾经曝光过这样一个漏洞:某大型银行的移动银行ios客户端中存在一个txt文件,文件中存储了一个svn服务器的ip地址、用户名和密码,黑客解压出该文件获取信息后可以直接连上并checkout服务器上的文件。

svn 服务器上存储的内容包括该银行移动银行系统的全部项目文档、完整的 Android 和 IOS 客户端代码,甚至还存放了用于客户端签名的数字证书。

渗透测试相关资源

方案类:

移动APP渗透测试方案 展示5个方面总结3种常见漏洞

渗透测试的8个步骤 展现一次完整的渗透测试过程及思路

实战类:

实战微信银行渗透测试 展示安全评估思路、工具及经验

某运营商渗透测试实战 展示渗透测试工具及业务系统中的常见问题

工具类:

渗透测试人员入门 如何配置Kali Linux直接用于工作

下载 | Kali Linux2017.2新版发布 增加了一大批新网络渗透测试工具

安全工程师的福音 免费恶意软件分析工具FlareVM 还可进行逆向工程和渗透测试

渗透测试工程师的17个常用工具 还有专家告诉你如何成为渗透测试人员

本文由:绿盟科技博客 发布,版权归属于原作者。 
如果转载,请注明出处及本文链接: 
http://toutiao.secjia.com/app-pentest
如果此文章侵权,请留言,我们进行删除。

目录
相关文章
|
12天前
|
Java Android开发
Rockchip系列之CAN APP测试应用实现(4)
Rockchip系列之CAN APP测试应用实现(4)
21 1
|
1月前
|
测试技术 UED Python
App自动化测试:高级控件交互技巧
Appium 的 Actions 类支持在移动应用自动化测试中模拟用户手势,如滑动、长按等,增强交互性测试。ActionChains 是 Selenium 的概念,用于网页交互,而 Actions 专注于移动端。在Python中,通过ActionChains和W3C Actions可以定义手势路径,例如在手势解锁场景中,先点击设置,然后定义触点移动路径执行滑动解锁,最后验证解锁后的元素状态。此功能对于确保应用在复杂交互下的稳定性至关重要。
32 5
|
4月前
|
域名解析 JSON 测试技术
常见移动端APP测试场景
常见移动端APP测试场景
|
4月前
|
编解码 搜索推荐 iOS开发
你知道APP UI设计基础知识和测试点吗?
你知道APP UI设计基础知识和测试点吗?
|
3月前
|
SQL 安全 关系型数据库
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
426 1
|
17天前
|
XML 数据格式 Python
App测试中,强制等待和隐式等待谁更强?
本文介绍了在自动化脚本中添加等待以确保与应用程序同步的重要性。由于应用响应时间的不确定性,适当等待能防止脚本在操作未完成前继续执行,提高测试稳定性。等待包括强制等待(如`time.sleep()`)、隐式等待(全局设置查找元素的等待时间)和显式等待(根据预期条件等待)。示例代码展示了如何在Python的Appium测试中应用这些等待策略,以优化脚本的可靠性和与应用的同步。
24 0
|
18天前
|
测试技术 Python
App自动化测试中,如何更好地处理弹窗?
在App自动化测试中,处理弹窗异常是保证测试稳定性和可靠性的重要环节。当遇到广告弹窗、升级提示等不定时出现的UI元素时,可以采用黑名单处理方法,如上述Python代码示例,通过尝试点击黑名单中的元素来避免干扰。同时,利用异常处理装饰器可以增强函数功能,保持代码整洁,当异常发生时记录日志、截图并保存页面源代码,便于问题排查。这两种策略能有效提升测试的效率和质量。
7 0
|
2月前
|
XML 测试技术 数据格式
解决 App 自动化测试的常见痛点
在App自动化测试中,常见挑战包括启动加载慢和弹框干扰。为处理弹框,可以创建一个黑名单列表,遍历并点击消除。使用`handleAlertByPageSource()`方法结合`getPageSource()`判断弹框元素在当前页面的存在性,提高效率。对于首页加载延迟,使用显示等待特定元素如`user_profile_container`,但需注意弹框可能阻止元素定位。因此,结合PageSource判断首页元素和弹框,确保加载完成判断的准确性。通过这样的优化,能更有效地处理自动化测试中的中断问题。
24 1
|
2月前
|
测试技术 Android开发 索引
XPath定位如何在App自动化测试中大显神威
本文介绍了如何在Appium中使用XPath进行自动化App测试。通过淘宝App实例,展示了XPath在定位元素上的应用,包括基础定位(如通过text、resource-id、class和content-desc属性),contains模糊定位,组合定位以及层级定位(如父、子、兄弟和祖元素定位)。XPath的灵活性和强大功能使得在Appium中高效地定位元素成为可能,从而提升移动应用的测试效率。
16 0
|
2月前
|
监控 安全 Shell
深入探究App压力测试的关键要点:从零开始学习Monkey
Monkey是Google的自动化测试工具,用于模拟用户随机事件以测试应用的稳定性和压力。它可以在模拟器或设备上运行,通过随机点击发现潜在问题。
29 1

热门文章

最新文章