APP渗透测试方案

APP渗透测试方案
APP渗透测试方案

APP渗透测试方案

2016-7-29

XXXXX公司

目录

1 App渗透简介 (3)

2 APP渗透测试所用工具 (3)

2.1 代理抓包工具 (3)

2.2 反编译工具 (3)

2.3 其他针对服务端的web渗透工具 (4)

3 APP渗透测试的方法 (5)

3.1 数据包分析、测试 (5)

3.2 APP反编译还原代码 (5)

4 APP渗透测试流程 (5)

4.1 项目启动 (5)

4.1.1 项目启动准备 (5)

4.1.2 实施方案制定 (6)

4.2 项目实施 (6)

4.2.1 信息收集 (6)

4.2.2 平台使用不当的测试 (6)

4.2.3 不安全的数据存储的测试 (6)

4.2.4 不安全的通信的测试 (7)

4.2.5 不安全的身份验证的测试 (7)

4.2.6 加密不足的测试 (7)

4.2.7 不安全的授权的测试 (7)

4.2.8 客户端代码质量问题的测试 (7)

4.2.9 代码篡改的测试 (7)

4.3 项目收尾 (8)

4.3.1 报告编写 (8)

4.3.2 问题复查 (8)

1App渗透简介

移动app大多通过web api服务的方式跟服务端交互,这种模式把移动安全跟web安全绑在一起。移动app以web服务的方式跟服务端交互,服务器端也是一个展示信息的网站,常见的web漏洞在这也存在,比如说SQL注入、文件上传、中间件/server漏洞等。

2APP渗透测试所用工具

2.1代理抓包工具

?Burpsuit

?Fiddler

代理抓包工具主要用于抓取、分析、篡改APP与服务端之间的交互数据包。

爆破、解编码、执行会话令牌等作用。

2.2反编译工具

APP的反编译有两种反编译方式,dex2jar和apktool,两个工具反编译的效果是不一样的,dex2jar反编译出java源代码,apktool反编译出来的是java 汇编代码。

?工具1:dex2jar+jdgui

?工具2:apktool

工具1反编译出来的是java源代码,易读性比较高。

工具2反编译出来的东西为smali反汇编代码、res资源文件、assets配置文件、lib库文件,我们可以直接搜索smali文件和资源文件来查找链接等。

2.3其他针对服务端的web渗透工具

?NMAP

Nmap是一款网络扫描和主机检测的非常有用的工具。Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统。Nmap是一款非常强大的实用工具,可用于:检测活在网络上的主机(主机发现)

检测主机上开放的端口(端口发现或枚举)

检测到相应的端口(服务发现)的软件和版本

检测操作系统,硬件地址,以及软件版本

检测脆弱性的漏洞(Nmap的脚本)

?SLQMAP

Sqlmap是一种开源的渗透测试工具,可以自动检测和利用SQL注入漏洞以及接入该数据库的服务器。它拥有非常强大的检测引擎、具有多种特性的渗透测试器、通过数据库指纹提取访问底层文件系统并通过外带连接执行命令。

支持的数据库:MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase and SAP MaxDB

SQL注入技术:boolean-based blind, time-based blind, error-based, UNION query, stacked queries and out-of-band

枚举数据:users, password hashes, privileges, roles, databases, tables and columns

其他

针对strut2的漏洞利用脚本、网站弱电扫描工具、网站目录爆破工具、BeEF 等

3APP渗透测试的方法

3.1数据包分析、测试

利用burpsuit、fiddler对APP进行抓包分析、篡改。这个方法利用在移动设备上设置代理,通过人工操作使app与服务端交互。测试APP与服务端的业务流程是否存在漏洞。

3.2APP反编译还原代码

有两种反编译方式,dex2jar和apktool,两个工具反编译的效果是不一样的,dex2jar反编译出java源代码,apktool反编译出来的是java汇编代码。从源代码层面上分析APP安全性。

4APP渗透测试流程

4.1项目启动

4.1.1项目启动准备

项目启动前为了保障双方利益、使得APP渗透项目可以顺利进行需与客户签订项目合同、项目保密协议、项目启动实施协调等前期工作。

4.1.2实施方案制定

某某获取到XXX的书面授权许可后,才进行渗透测试的实施。并且将实施范围、方法、时间、人员等具体的方案与XXX进行交流,并得到XXX的认同。

在测试实施之前,某某会做到让XXX对渗透测试过程和风险的知晓,使随后的正式测试流程都在XXX的控制下。

4.2项目实施

4.2.1信息收集

?收集目标系统暴露于网络上,不需要额外的授权便可获取到的信息。

?专业安全工具扫描、嗅探,对系统的网络和应用程序进行远程漏洞扫描,

并对扫描结果进行分析。

?利用社会工程学原理获取目标系统敏感信息。

4.2.2平台使用不当的测试

滥用平台功能,没有使用平台安全控制。包括Android的intent,平台权限控制,错误使用TouchID,秘钥链(KeyChain)、或是移动操作系统中的其他安全控制。

4.2.3不安全的数据存储的测试

包括不安全的数据存储和非故意的数据泄漏。包括邮箱、手机号码、身份证信息、QQ、用户密码、等信息。

4.2.4不安全的通信的测试

包括不完善的通信握手过程、使用了有漏洞的SSL 版本、不安全的通讯协议、敏感信息的明文传输,等等。

4.2.5不安全的身份验证的测试

包括对终端用户不安全的身份验证或不正确的session会话管理;需要身份鉴权的时候没有识别用户身份;在一个持续的会话中没有正确的识别用户身份;会话管理中的漏洞。

4.2.6加密不足的测试

对代码使用弱加密技术对敏感信息资产进行加密进行测试发现。

4.2.7不安全的授权的测试

包括任何失败的授权行为(例如:在客户端的授权决策、强迫浏览等。)。它有别于身份验证问题(例如:设备注册、用户标识等)。

4.2.8客户端代码质量问题的测试

包括例如缓冲区溢出、字符串格式漏洞以及其他不同类型的代码级错误,而这些错误的解决方法是重写在移动设备中运行的某些代码。

4.2.9代码篡改的测试

包括二进制修补、本地资源修改、方法钩用、方法调整和动态内存修改。

相关主题
相关文档
最新文档