银行手机APP安全评估报告【转载】
猫头鹰工作室 我不相信命运,但尊敬命运
银行手机APP安全评估报告
1.1 目标范围
某一银行手机APP
1.2 渗透测试说明
渗透测试利用安全扫描工具和富有经验的安全工程师人工对网络中的主要服务器及重要的应用系统等进行非破坏性质的模拟黑客攻击,目的是侵入系统并获取机密信息并将入侵的过程和细节产生报告给用户。由此确定用户系统所存在的安全威胁。并能及时提醒安全管理员完善安全策略,降低安全风险。
渗透测试和工具扫描可以很好的互相补充。工具扫描具有很好的效率和速度,但是存在一定的误报率,不能发现高层次、复杂的安全问题;渗透测试需要投入的人力资源较大、对测试者的专业技能要求很高(渗透测试报告的价值直接依赖于测试者的专业技能),但是非常准确,可以发现逻辑性更强、更深层次的弱点。
1.3 渗透测试方法
黑客的攻击入侵需要利用目标网络的安全弱点,渗透测试也是同样的道理。它模拟真正的黑客入侵攻击方法,以人工渗透为主,辅助以攻击工具的使用,这样保证了整个渗透测试过程都在可以控制和调整的范围之内。
Sql注入、跨站脚本xss攻击、框架漏洞、信息泄漏等常见web漏洞;
越权访问、Csrf跨站点伪造请求攻击漏洞;
客户端劫持、键盘劫持漏洞;
安卓app客户端信息泄漏、残余信息、键盘记录、反编译等漏洞;
1.4 渗透测试结果
1.4.1 Android版彩虹bank app安全测试(发现问题)
1.4.1.1 APP本地缓存测试(未发现问题)
1.4.1.1.1 手机端缓存分析
未发现存储异常数据
1.4.1.1.2 手机端本地数据库分析
未发现存储异常数据
1.4.1.2 APP运行安全测试(发现问题)
1.4.1.2.1 键盘监听测试
APP密码框输入使用内带安全键盘无法监听到用户输入。
如在用户框中输入则是可以监听的。
1.4.1.2.2 APP攻击面分析(发现APP开启debuggable)
发现APP有一个Activity组件可以调用,并且开启debuggable模式。
建议:关闭debuggable模式
1.4.1.2.3 Activity组件分析
发现APP开启的Activity组件com.yucheng.android.hebbank.WelcomeActivity为启动界面不存在问题
1.4.1.2.4 APP的数据缓存目录、权限、版本等基本信息分析
未发现有异常问题。
1.4.1.2.5 日志输出分析(发现输出登录用户名和密码等客户敏感信息)
在登录时日志输出客户账号、密码等敏感信息
在进行操作时日志也会显示出操作信息。
建议:关闭输出日志
1.4.1.3 APP反编译测试(未发现问题)
1.4.1.3.1 代码反编译
App编译时已经做了混淆,无法进行有效利用。
1.4.1.3.2 AndroidManifest.xml文件分析
AndroidManifest.xml文件分析未发现其它问题,与前面APP运行安全测试的一致开启了debuggable
1.4.1.4 APP各个功能点检测(发现问题)
1.4.1.4.1 用户登录(录时密码未进行加密)
用户登录时密码未进行加密。
建议:虽有HTTPS加密传输,但当客户遭遇中间人攻击时容易被窃取账号密码。建议对用户名密码进行加密。
1.4.1.4.2 绑定银行卡(未发现问题)
在绑定银行卡过程中未发现存在问题。
1.4.1.4.3 资产总览(存在请求伪造)
因没有启用ssl双向认证,黑客获取cookie后可以伪造请求去查询账户信息。
把截获的请求包使用其它浏览器发送请求可以请求成功。
建议:如果启用ssl双向认证用户在进行操作时需要反复输入密码完成双向认证过程,可能会影响用户体验,参照同业标准,(目前只有农行采用ssl双向认证)。
1.4.1.4.4 交易记录查询(存在容错问题)
交易记录查询的count查询条数字段默认为20条,但输入字母或者字符的时候出现应用程序出错。
建议:在服务端对接收的数据类型进行验证并屏蔽软件错误信息。
1.4.1.4.5 资金转出(存在容错问题)
在资金转出时,转出金额在APP界面是无法转出大于活期余额的金额。
但是对交易数据进行拦截修改转出金额为一长串负数时报出错误信息
修改交易密码为空时也报出程序错误信息。
在拦截时修改金额且输入错误的交易密码也能成功提交。
资金转出过程中在APP端对输入的数据类型、交易金额进行了验证,但在服务端未进行验证。
建议:在服务端对接收的数据类型、交易金额进行验证并屏蔽软件错误信息。
1.4.1.4.6 资金转入(未发现问题)
在资金转入的操作过程中未发现问题
1.4.1.4.7 活动页面(存在RUL重定向)
点击活动页面会发送请求外部网站资源。
可以拦截修改请求为百度。
建议:对请求的外部资源返回内容进行验证
1.4.1.4.8 我的添金(存在容错和重放攻击问题)
在添金的交易过程中,进行数据拦截修改申购金额输入长串数据报出软件错误信息。
修改赎回金额输入长串数据也是报出软件错误信息。
添金申购存在重放攻击,拦截交易数据可以重复成功提交请求。
添金赎回也存在重放攻击,拦截交易数据可以重复成功提交请求。
建议:对于容错问题可以在服务端对接收的数据类型进行验证并屏蔽软件错误信息。对于重放攻击可以设置时间戳屏蔽过期请求,或者设置消息序号在交易时事先协商好序号以判断请求的唯一性。
1.4.1.4.9 步步增利(存在容错和重放攻击问题)
在步步增利的存入过程中,进行数据拦截修改申购金额输入长串数据报出软件错误信息
在支取过程中,进行数据拦截修改金额输入长串数据也报出软件错误信息
步步增利存入存在重放攻击,因为账户金额不足交易失败但还是可以重复成功提交请求。
步步增利支取也存在重放攻击,拦截交易数据可以重复成功提交请求。
建议:对于容错问题可以在服务端对接收的数据类型进行验证并屏蔽软件错误信息。对于重放攻击可以设置时间戳屏蔽过期请求,或者设置消息序号在交易时事先协商好序号以判断请求的唯一性。
1.4.1.4.10 个人信息(未发现问题)
个人消息页面未发现问题。
1.4.1.4.11 我的消息(未发现问题)
我的消息页面未发现问题。
1.4.1.4.12 安全中心(未发现问题)
修改登录密码需要短信验证码,操作过程中未发现问题。
重置交易密码需要短信验证、身份证号码,操作过程中未发现问题。
修改交易密码需要短信验证,操作过程中未发现问题。
修改手机可分为原手机可用和不可用需要短信验证,不可用需要上传身份证照片验证,操作过程中未发现有问题。
修改绑定邮箱需要手机短信验证码和邮箱验证,操作过程中未发现问题。
1.4.1.4.13 找回登录密码(未发现问题)
找回密码需要手机验证码以及详细的个人信息,操作过程中未发现问题。
1.4.2 IOS版彩虹bank app安全测试(发现问题)
1.4.2.1 日志输出分析(未发现问题)
在操作过程中未发现有敏感日志信息输出
1.4.2.2 本地数据库分析(未发现问题)
检测本地数据未发现敏感信息存储
1.4.2.3 本地缓存文件分析(未发现问题)
检测本地文件存储路径未发现有敏感信息
1.4.2.4 检查keychain-2.db数据库(未发现问题)
keychain-2.db是IOS通用存储密码数据库,检测发现彩虹bank的敏感信息
1.4.2.5 APP各个功能点测试(发现问题)
1.4.2.5.1 登录(未对密码进行加密)
登录时未对密码进行加密,虽使用HTTPS但客户遇到中间人攻击时密码容易被截获。
建议:登录时对密码进行加密。
1.4.2.5.2 资产总览(存在请求伪造)
因没有启用ssl双向认证,黑客获取cookie后可以伪造请求去查询账户信息。
把截获的请求包使用其它浏览器发送请求可以请求成功。
建议:如果启用ssl双向认证用户在进行操作时需要反复输入密码完成双向认证过程,可能会影响用户体验,参照同业标准,(目前只有农行采用ssl双向认证)。
1.4.2.5.3 交易记录查询(存在容错问题)
交易记录查询的count查询条数字段默认为10条,但输入字母或者字符的时候出现应用程序出错。
建议:在服务端对接收的数据类型进行验证并屏蔽软件错误信息。
1.4.2.5.4 资金转出(存在容错问题)
在资金转出时,转出金额在APP界面是无法转出大于活期余额的金额。
但是对交易数据进行拦截修改转出金额为一长串负数时报出错误信息
修改交易密码为空时也报出程序错误信息。
在拦截时修改金额且输入错误的交易密码也能成功提交。
资金转出过程中在APP端对输入的数据类型、交易金额进行了验证,但在服务端未进行验证。
建议:在服务端对接收的数据类型、交易金额进行验证并屏蔽软件错误信息。
1.4.2.5.5 资金转入(未发现问题)
在资金转入过程中未发现问题。
1.4.2.5.6 活动页面(存在RUL重定向)
点击活动页面会发送请求外部网站资源。
可以拦截修改请求为百度,修改一次之后每次点击打开活动页面都会打开百度页面
建议:对请求的外部资源返回内容进行验证
1.4.2.5.7 我的添金(存在容错和重放攻击问题)
在添金的交易过程中,进行数据拦截修改申购金额输入长串数据报出软件错误信息。
修改赎回金额输入长串数据也是报出软件错误信息。
添金申购存在重放攻击,拦截交易数据可以重复成功提交请求。
添金赎回也存在重放攻击,拦截交易数据可以重复成功提交请求。
建议:对于容错问题可以在服务端对接收的数据类型进行验证并屏蔽软件错误信息。对于重放攻击可以设置时间戳屏蔽过期请求,或者设置消息序号在交易时事先协商好序号以判断请求的唯一性。
1.4.2.5.8 增利(存在容错和重放攻击问题)
在步步增利的存入过程中,进行数据拦截修改申购金额输入长串数据报出软件错误信息
在支取过程中,进行数据拦截修改金额输入长串数据也报出软件错误信息
步步增利存入存在重放攻击,因为账户金额不足交易失败但还是可以重复成功提交请求。
步步增利支取也存在重放攻击,拦截交易数据可以重复成功提交请求。
建议:对于容错问题可以在服务端对接收的数据类型进行验证并屏蔽软件错误信息。对于重放攻击可以设置时间戳屏蔽过期请求,或者设置消息序号在交易时事先协商好序号以判断请求的唯一性。
1.4.2.5.9 个人信息(未发现问题)
在个人信息页面未发现问题
1.4.2.5.10 我的消息页面(未发现问题)
在我的消息页面未发现问题
1.4.2.5.11 安全中心(未发现问题)
修改登录密码需要手机验证码,过程中未发现问题。
交易密码重置需要手机验证码,过程中未发现问题。
修改交易密码需要手机验证码,过程中未发现问题
变更银行卡需账户金额为0,操作过程中未发现问题。
修改绑定手机分为原手机可用和不可用,不可用需要上传身份证照片,过程中未发现问题。
修改绑定邮箱需要手机验证码和邮箱验证,过程中未发现问题。
1.4.2.5.12 找回登录密码(未发现问题)
找回密码需要手机验证码以及详细的个人信息,操作过程中未发现问题。
1.4.3 彩虹bank官网渗透测试(发现问题)
1.4.3.1 SSL V3 Protocol信息泄露漏洞
测试官网HTTPS兼容SSL V3
关于SSL V3 Protocol漏洞的介绍
建议:屏蔽sslv3协议。
1.4.3.2 用户注册(存在SQL注入)
在彩虹bank官方网站的注册页面的手机号码字段存在SQL注入。在注册的时输入手机号码之后会先发送手机号码至服务器验证是否已经注册过。
验证手机号码时发送的数据包
发现phoneNumber字段存在SQL注入,使用SQLmap验证的结果如下图。
发现可利用的有4个数据库,存在问题字段:phoneNumber,类型为布尔型。
建议:对用户输入进行过滤,及时联系厂商进行修补。
1.4.3.3 资产总览(未发现问题)
在资产总览页面未发现问题。
1.4.3.4 交易记录(未发现问题)
在交易记录的查询过程中未发现问题。
1.4.3.5 账户管理(未发现问题)
在账户管理页面未发现问题。
1.4.3.6 增利(未发现问题)
在步步增利交易过程中未发现存在问题。
转载请注明:猫头鹰工作室 » 银行手机APP安全评估报告
刚赶走勒索病毒,又来挖掘木马 1分钟带你了解英特尔 CPU 安全漏洞
取消评论
表情 有人回复时邮件通知我
Hi,您需要填写昵称和邮箱!
- 昵称昵称 (必填)
- 邮箱邮箱 (必填)
- 网址网址
分类目录
猜你喜欢
最新吐槽
-
dtkun5个月前 (07-31)说:哈哈,测试好了,写个脚本就很简单了~
-
idb7个月前 (06-05)说:yum list tcl 显示结果右边版本号前面没有“@”符号,表示没有安装
-
天涯孤鸟7个月前 (05-19)说: org.springframe
-
南瓜一族8个月前 (04-28)说:龙神,牛B,好好加油~~~
-
南瓜一族8个月前 (04-27)说:龙哥哥,好棒啊
最新吐槽
-
dtkun5个月前 (07-31)说:哈哈,测试好了,写个脚本就很简单了~
-
idb7个月前 (06-05)说:yum list tcl 显示结果右边版本号前面没有“@”符号,表示没有安装
-
天涯孤鸟7个月前 (05-19)说: org.springframe
-
南瓜一族8个月前 (04-28)说:龙神,牛B,好好加油~~~
-
南瓜一族8个月前 (04-27)说:龙哥哥,好棒啊
银行手机APP安全评估报告【转载】的更多相关文章
- JMeter学习(三十七)Jmeter录制手机app脚本(转载)
转载自 http://www.cnblogs.com/yangxia-test 环境准备: 1.手机 2.wifi 3.Jmeter 具体步骤: 1.启动Jmeter: 2.“测试计划”中添加“线 ...
- 蚂蚁金服×西安银行 | 西安银行手机银行App的智能升级之路
小蚂蚁说: 当前,数字化信号已经逐渐深入到社会的每个角落,影响着用户的心智和行为,来到数字化时代门口的银行,需要注意到数字化信号.西安银行通过引入蚂蚁金服移动开发平台mPaaS,对手机银行进行架构升级 ...
- 【转载】Loadrunner实现Android / IOS 手机APP压力测试
随着手机APP用户量的增大,大的手机APP一般都需要进行压力测试,这几天用了loadrunner 12进行了手机APP的压力测试,整理了下,大家可以参考参考怎样给Andorid / IOS手机APP进 ...
- 手机APP测试思路及测试要点
一 手机APP测试基本思路: 测试计划--测试方案--测试用例--执行: 很多小公司都没有具体的需求,项目时间也比较紧,而且流程也不是很严谨,在这样的情况之下,作为测试的我们,该怎样去对项目进行用例 ...
- 手机app微信支付后台处理流程
第一步:客户在手机app确认订单,提交订单后,app将订单详情传给后台,后台将订单存入数据库,将存入数据库的id返回给app. 第二步:这时候手机端app会让客户选择哪种付款方式,我们做的是微信,所以 ...
- MUI框架开发HTML5手机APP(一)--搭建第一个手机APP
前 言 JRedu 随着HTML5的不断发展,移动开发成为主流趋势!越来越多的公司开始选择使用HTML5开发手机APP,而随着手机硬件设备配置的不断提升,各种开发框架的不断优化,也使着H5开发的 ...
- 查找第三方银行官方app下载链接探索过程
需求:最近有个需求,点击按钮,弹出一个所需银行选项的非全屏弹出层,再点击某银行选项,随即跳转到该银行的app下载界面,如下图所示 注:这里只是引用相关银行的链接,不需要做什么逻辑处 ...
- MUI框架开发HTML5手机APP(一)--搭建第一个手机APP(转)
出处:http://www.cnblogs.com/jerehedu/p/7832808.html 前 言 JRedu 随着HTML5的不断发展,移动开发成为主流趋势!越来越多的公司开始选择使用H ...
- 第六篇 native 版本的Postman如何通过代理服务器录制Web及手机APP请求
第四篇主要介绍了chrome app版本的postman如何安装及如何录制Web脚本,比较简单. 但是chrome app 版本和native 版本相比,对应chrome app 版本官方已经放弃支持 ...
随机推荐
- [c/c++]fopen用法及参数介绍
函数定义: FILE * fopen ( const char * filename, const char * mode ); 参数mode: "r" read: 为输入操作打开 ...
- python连接Mongo数据库
python连接Mongo数据库主要采用pymongo连接,一般情况分为两种连接方式,一种通过指定端口和地址直接连接,另一种通过uri的格式连接 1.通过指定端口和地址连接Mongo conn = M ...
- jmeter-场景-上传文件-send-a-file
jmeter --上传文件 jmeter-场景-上传文件-send-a-file 简要说就3点: POST请求 Request的参数都写在路径内,不写在表单里 上传的文件写在表单里 只要记住以上3点, ...
- 修改 spawn node.exe" ENOENT at notFoundError问题
Ionic server启动后,出现spawn node.exe" ENOENT at notFoundError ...\node_modules\cross-spawn\lib\enoe ...
- deque/defaultdict/orderedict/collections.namedtuple()/collections.ChainMap() 笔记
关于deque的使用 collections.deque([list[, max_length]]) # 不限定长度,可随意添加没有上限 >>> from collections i ...
- Ambari安装常见问题
参考自: http://blog.csdn.net/xingxc111/article/details/70667574 http://blog.csdn.net/xfg0218/article/de ...
- Hystrix 常用属性配置
配置参数 默认值 说明 命令-执行属性配置 hystrix.command.default.execution.isolation.strategy THREAD 配置隔离策略,有效值 THREAD, ...
- 【java】对象赋值给另一个对象
对基本数据类型的赋值很简单的.基本类型存储了实际的数值,而并非指向一个对象的引用,所以在赋值的时候,是直接将一个地方的内容复制到另一个地方.对于a=b,修改b后并不会影响到a,这正是我们大多数情况下所 ...
- TdxMemData 的Bug和使用
aa.CopyFromDataSet(acdsBase);//克隆一个,与LoadFromDataSet区别,如果设置了Field,那么L只会导入设置的部分,而C则是全部复制过来 TdxMemData ...
- FLIR ONE PRO热成像仪
FLIR ONE PRO热成像仪 https://www.chiphell.com/thread-1774218-1-1.html