本APP安全测试系列分为5个篇章,这五个篇章的内容可以作为APP测试的样例,在遇到APP测试工作时,可以直接依次按照教程的步骤进行测试,最后编写APP测试报告即可。
-
测试前准备
-
身份鉴别
-
数据传输与存储
-
容错与客户端保护
-
业务及Web应用安全
话不多说,直接开始第五篇,业务及Web应用安全:
常见测试点如下:
1、注入攻击
注入攻击漏洞发生在当不可信的数据作为命令或者查询语句的一部分,被发送给解释器的时候。攻击者发送的恶意数据可以欺骗解释器,以执行计划外的命令或者在未被恰当授权时访问数据。以SQL注入为例,服务端未对客户端提交数据进行有效过滤,导致服务端原本执行的SQL语句被恶意篡改,破坏原有SQL结构,最终达到欺骗服务器执行恶意的SQL命令。攻击者利用SQL注入漏洞,可以获取数据库中的多种信息(例如:管理员后台密码、普通用户登录账号及密码),从而脱取数据库中所有数据。
检测项 |
难度等级 |
SQL注入 |
高级 |
XXE注入攻击 |
高级 |
命令注入攻击 |
高级 |
XML注入攻击 |
基础 |
2、身份认证和会话管理
检测项 |
难度等级 |
暴力破解用户密码 |
中级 |
以弱密码暴力破解用户名 |
中级 |
重置任意用户密码 |
中级 |
第三方登录缺陷 |
中级 |
任意用户登录 |
高级 |
恶意注册 |
高级 |
短信验证码绕过缺陷 |
高级 |
发送短信接口重放攻击 |
高级 |
登录接口重放攻击 |
高级 |
支付接口重放攻击 |
高级 |
会话令牌固定 |
高级 |
不安全会话传递方式 |
中级 |
会话退出未注销 |
中级 |
未设置会话有效时间 |
基础 |
3、信息泄露
目标系统存在配置缺陷或者其它逻辑缺陷,攻击者可通过构造特殊数据包访问服务器的配置文件或造成服务器产生异常报错,从而获取服务器或者用户的敏感信息。
检测项 |
难度等级 |
服务器返回过多不必要的敏感数据 |
基础 |
服务器返回数据包中未做模糊处理 |
基础 |
服务器报错信息 |
基础 |
4、业务缺陷
APP包括用户个人信息的增删改查、商品交易、多因子验证等业务。在处理这些业务时,服务端可能会过于信任客户端提交的数据,或者是客户端过于信任服务端返回的数据。攻击者可以利用一些攻击手段篡改数据达到欺骗服务器和客户端的目的,可能会造成信息泄露、恶意交易等危害。
检测项 |
检测结果 |
顺序执行缺陷 |
高级 |
条件竞争 |
高级 |
逻辑漏洞 |
高级 |
5、功能级访问控制缺陷
应用系统未做好账户权限控制,普通账户可越权操作其他账户数据,或者拥有高权限账户的操作权限,导致账户数据可被恶意查看、修改、删除等后果。
检测项 |
难度等级 |
横向越权 |
中级 |
纵向越权 |
中级 |
6、权限控制漏洞
服务器未做好权限控制,导致攻击者可以获取系统文件以及服务器的配置文件甚至可上传木马文件获得服务器的控制权限。
检测项 |
难度等级 |
文件上传漏洞 |
中级 |
文件下载漏洞 |
中级 |
文件读取漏洞 |
中级 |
目录遍历漏洞 |
高级 |
7、跨站脚本
页面没有对用户提交的数据进行有效的过滤或转换,攻击者可向页面里插入对终端用户造成影响或损失的恶意代码并执行。
检测项 |
难度等级 |
xss跨站脚本攻击 |
高级 |
8、使用含有已知漏洞的组件
由于服务器自身以及使用的框架组件缺陷,或者开发人员自身编码的缺陷,在安全维护过程中没有得到及时的补丁更新,导致攻击者可以利用漏洞达到远程执行命令、获取敏感信息等后果。
检测项 |
难度等级 |
Strusts2漏洞 |
高级 |
Java反序列化漏洞 |
高级 |
JBoss漏洞 |
高级 |
Tomcat漏洞 |
高级 |
WebLogic漏洞 |
高级 |
APP的业务及应用安全主要是参考Web应用测试的方法,通过一些APP功能、用户输入点等进行漏洞挖掘,如下挖掘的APP漏洞,与Web测试同理。
1.1 数据库敏感信息泄露
漏洞名称 |
数据库敏感信息泄露 |
影响程度 |
高 |
问题描述 |
数据库明文将泄露敏感信息。 |
漏洞危害 |
用户密码信息泄露。 |
测试步骤 |
通过查看发现在目录 /var/mobile/Applications/B6E5BDFF-48BE-4275-82E2-0FB9E24C384B/Documents/下存有数据库文件 打开且发现数据库结构明文: 且在user表中发现有明文用户名和加密密码: |
1.2 数据传输过程未加密
漏洞名称 |
数据传输 |
影响程度 |
低 |
问题描述 |
通过抓包工具进行数据包抓取,发现客户端与服务端的通信方式为http未做加密传输。 |
漏洞危害 |
明文传输会造成敏感信息的泄露。 |
测试步骤 |
|
1.3 手机客户用户名注册跨站漏洞
漏洞名称 |
手机客户端用户名注册跨站漏洞 |
影响程度 |
高 |
问题描述 |
在某银行手机APP客户端用户名注册的地方由于对特殊字符未加以过滤而导致跨站脚本的触发。 |
漏洞危害 |
攻击者利用该漏洞,可能获取正常用户Cookie中的敏感数据、屏蔽页面特定信息、伪造页面信息、拒绝服务攻击、突破外网内网不同安全设置、与其它漏洞结合,修改系统设置,查看系统文件,执行系统命令等。 |
测试步骤 |
|
1.4 手机客户端用户反馈跨站漏洞
漏洞名称 |
手机客户端用户反馈跨站漏洞 |
影响程度 |
高 |
问题描述 |
在某银行手机APP客户端用户反馈的地方由于对特殊字符未加以过滤而导致跨站脚本的触发。 |
漏洞危害 |
攻击者利用该漏洞,可能获取正常用户Cookie中的敏感数据、屏蔽页面特定信息、伪造页面信息、拒绝服务攻击、突破外网内网不同安全设置、与其它漏洞结合,修改系统设置,查看系统文件,执行系统命令等。 |
测试步骤 |
|
1.5 用户常用收款人信息泄露漏洞
漏洞名称 |
用户常用收款人信息泄露漏洞 |
影响程度 |
高 |
问题描述 |
客户端程序对本地信息未做加密处理。 |
漏洞危害 |
客户常用联系人会在手机ROOT情况下被其他恶意软件获取。 |
测试步骤 |
filescom.nccb.mobilebankingapplicationsnccbmbdatadatabaseD_Contact |
1.6 内网IP信息泄露漏洞
漏洞名称 |
内网IP信息泄露漏洞 |
影响程度 |
高 |
问题描述 |
客户端程序对本地信息未做加密处理。 |
漏洞危害 |
攻击者可以利用此IP信息获取到更多网络架构信息。 |
测试步骤 |
com.nccb.mobilebankingsmalicombak.smali com.nccb.mobilebankingsmalicompolyvinetHttpConnection.class |
1.7 证书密码信息泄露漏洞
漏洞名称 |
证书密码信息泄露漏洞 |
影响程度 |
高 |
问题描述 |
客户端程序对本地信息未做加密处理。 |
漏洞危害 |
攻击者可以利用此信息获取到证书的密码 |
测试步骤 |
1.8 获取任意用户名下的卡信息
漏洞名称 |
获取任意用户名下的卡信息 |
影响程度 |
高 |
问题描述 |
客户端程序未对用户之间水平权限未做审核。 |
漏洞危害 |
攻击者可以利用此漏洞获取其他任意用户的名下的卡信息。 |
测试步骤 |
POST /sesServer/ltc/hqjgklb?key=0.8968388657085598 HTTP/1.1 76FC99667E3B25EA3A152517AE30DCC10219F56E0D5A515A 修改任意customid |
1.9 查询任意用户转账信息
漏洞名称 |
查询任意用户转账信息 |
影响程度 |
高 |
问题描述 |
客户端程序未对用户之间水平权限未做审核。 |
漏洞危害 |
攻击者可以利用此漏洞获取其他任意用户的转账信息。 |
测试步骤 |
POST /sesServer/order/cxdd?key=0.25114057469181716 HTTP/1.1 AF902C9E0C9D732B72A82660BCFE30A9A87ABA71498980DA021884DDE3AFFE451EDE01F1F3053F7B1D831C587B58C05D0FAEE51D03FB109C |
1.10 绕过密码验证,登录任意账户
漏洞名称 |
绕过密码验证,登录任意账户 |
影响程度 |
高 |
问题描述 |
客户端程序未对用户之间水平权限未做审核。 |
漏洞危害 |
攻击者可以利用此漏洞绕过密码验证,登录任意账户。 |
测试步骤 |
POST /sesServer/customer/yhdl?key=0.49305529333651066 HTTP/1.1 7F30B15FAF9A91226B7FA333E48D3860E837537DC38001619B59544AA8392462469904E5E5B7B291C30A76A7A1BC248D5BDB63EB8D30EDC485389131C1E79A51827BD31C4B9FC9EECD200DB7F115685B13867D00580CD73DA712E5B7A8319E1CF097BCCB571D5D9BAA2218422C07B0FFAB6F3B241DCF095284EEBFAF8E219A5AA58980D6B0C6DAFEF7E840358A68F4E9 返回内容: F810AB16B647AB4CA10B8EF823D762DE82D44B2B3CBEA2C260713858001DE4FB6B6924B8A248D517F4A4E8FC3DB7B7EE4ED68E2A44F71393BC819B3DB204EC13CE82C4F6E10C8C7AE99E09E2715E0EEC 修改解密内容 修改customerId为任意账户id |
关注公众号了解更多资讯
原文始发于微信公众号(纵横安全圈):APP安全测试系列-业务及Web应用安全
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论