Android安全测试集合一之客户端APP测试点(一)

Android安全测试集合一之客户端APP测试点

我又来水文章啦~~~本章主要是想大致讲下客户端测试中的一些测试点和测试方法,比较偏向于基础,望轻喷。。。。。。

首先,Android的测试点也比较多,个人理解测试点也可以大致的分为三大类:客户端安全、服务端安全、通信安全。下面引用一个现在比较常见的Android测试点思维导图:

那么。我们今天主要就是讲一下这个客户端app安全

  1. 反编译:这点主要是为了测试APP是否进行加固和混淆;

测试方法:这里推荐使用反编译工具进行测试,但是一般经过加固的APP,其实也就不太建议测试这个点了,意义不大。如果是更深层次的就考虑逆向和破壳的技术了,我太菜,说不了,哈哈哈~~~~

反编译工具基本一搜就有了很多介绍,这边推荐使用比较基础的就是apktool和dex2jar。两者有一定区别:

apktool反编译出来的是java汇编代码而dex2jar反编译出来的是java源代码。

我本人在使用过程中会看情况使用,如果只是为了查看一些配置文件之类的,apktool会比较方便;如果是需要进行简单的代审的话,那么dex2jar比较好,反编译之后使用jd-gui打开jar包可直接查看。注:这里的两个工具的详细的安装和使用方法,后面单独写下。

测试过程:1、先说apktool,这个简单,安装完工具后,直接在apktool.jar的目录下cmd运行后使用【java -jar apktool.jar d apk文件】来进行反编译。会得到一个反编译后与apk同名的的文件夹。

这里可以查看AndroidManifest.xml文件来看下基本的app的配置信息,也可以通过这里发现一些配置上的问题,例如:是否允许备份、是否允许调试、哪些权限开了、哪些组件对外暴露的是否有做权限设置或者限制等问题,当然这些也基本局限于配置项的问题。另外就是里面的一些资源文件,也可以看看是否有什么信息泄漏的点。

dex2jar的使用也比较简单,对于没有进行加固和混淆的apk可以通过这个看到源码,方便进行分析。使用方法也比较简单:把apk文件后缀改为zip压缩文件,然后解压缩可以看到classes.dex文件,把该文件复制到dex2jar的主目录中并在当前目录执行cmd命令d2j-dex2jar.bat classes.dex,随即可得到一个.jar的文件,可用jd-gui或者jadx之类的工具打开查看源码。

另外,关于反编译这块,也有集成工具可用,例如apktoolkit或者androidKiller等工具,集成了上述工具,有界面化操作很简单。

2、防二次打包:这里主要是为了测试app是否可以二次打包,也包含app签名问题。

测试方法:这边可以用两种方法:第一种是依然使用apktool工具java -jar apktool.jar b 之前反编译出来的文件夹,运行之后会在目录下多出两个文件夹,一个是build一个是dist,新的打包出的apk就在dist文件中。

第二种方法就是使用刚刚说的apktoolkit或者androidKiller,这两款工具都可以直接操作,相关工具的使用方法就太多了,这里就不细说了。

接下来就是对回编译的apk进行签名,这里主要是要看原先的apk是否有进行加固或者进行签名校验,如果都没有的话,那么可以通过自己签名后进行发布安装,存在隐患。

签名同样有两种方法:第一种是在java安装目录下的bin目录中执行命令:

keytool -genkey -alias abc.keystore -keyalg RSA -validity 20000 -keystore abc.keystore(会生成abc.keystore签名文件)

jarsigner -verbose -keystore abc.keystore -signedjar testx.apk test.apk abc.keystore(生成签名后的apk)

第二种方法就是刚刚说的那两个工具,有默认签名文件可用,可以直接界面化操作。

两种方式都是为了测试app是否做了签名校验或者加固,如果有做的话,那么加固的话可能会出现无法回编译成功的现象;签名校验的话则会在安装时发现提示apk包来源不正规等情况。

3、数据安全:数据安全这里主要包含几个模块:

1)敏感信息不要存在sdcard中

2)日志打印安全

3)app目录文件访问权限安全

4)app敏感数据不要本地存储

1)第一个主要是为了防止在root环境下,使用adb shell进入系统后pull拉取sdcard文件里面的内容,从而引起的敏感信息泄露。(这里需要先运行app并操作所有功能点之后)

2)第二个主要是针对开发过程中关于日志打印调试过程中产生的敏感信息输出的问题;通过logcat命令adb logcat -v time > 目录/log.txt,然后在手机测试端和PC端连接的情况下,通过操作手机测试端中的app各项功能进行日志抓取,从而分析日志敏感信息泄露的点。这里需要使用到adb命令,adb的安装使用可以看下我的另一篇文章:

3)可能存在敏感信息的目录需要设备访问权限,防止其他恶意app访问敏感数据。

4)与1)同理,也可以通过该方法获取以apk包名命名的文件夹下的内容,看是否有敏感信息泄露。一般是/data/data/apk文件夹。

4、组件安全:主要是四大组件的安全点

这里可以参考我的这篇文章:

Drozer的安装和使用教程(入门)_真的写不出来哇~的博客-CSDN博客

主要是讲解drozer使用方法,其中也写明了组建的大致测试方法。

5、界面类安全测试点:主要是针对一些基础的漏洞点

1)用户名枚举

2)验证码安全

3)界面敏感数据脱敏

4)登陆绕过

5)root环境检测

6)截屏保护

还有一些其他小点我就不一一列举了。

第一部分就先说这么多,后续会继续更的,各位大哥轻喷~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 提取测试点时,需要考虑以下几个方面:功能测试、界面测试、性能测试安全测试和兼容性测试。 首先,功能测试是最基本的测试点之一。需要验证每个功能是否按照设计要求正常工作。可以根据需求文档和设计说明书来提取测试点,例如验证登录功能、注册功能、搜索功能、购物功能等。 其次,界面测试也是一个重要的测试点。要验证用户界面是否友好、易用和一致。可以测试界面的布局、颜色、字体、图标等是否符合设计规范,同时也要验证界面交互是否流畅、响应迅速。 性能测试也是不可忽视的测试点之一。要验证app在不同负载下的响应时间、稳定性和可扩展性。可以通过模拟多种用户并发操作,对各个功能模块进行性能测试,如登录响应时间、页面加载速度等。 安全测试也是必不可少的一个测试点。要验证app是否存在安全漏洞,以及用户数据是否能够被恶意攻击者获取。可以测试app的登录验证机制、数据加密保护措施、防止SQL注入、XSS攻击等安全方面的功能。 最后,兼容性测试也很重要。要验证app在不同操作系统、不同设备上的兼容性和适应性。可以测试app在不同手机分辨率、不同操作系统版本、不同网络环境下的运行情况。 总之,提取测试点需要全面考虑app的各个方面,并结合需求和设计文档进行分析。通过充分的功能、界面、性能、安全和兼容性测试,可以提高app的质量和用户体验。 ### 回答2: 针对一个App,我们可以通过以下几个步骤来提取测试点: 1. 确定功能要求:首先,我们需要明确该App的主要功能和需求。这包括用户可以进行哪些操作,涉及哪些数据和功能模块等等。通过分析和理解这些功能要求,我们可以为每个功能点提取测试点。 2. 分析用户流程:在确定了App的功能要求后,我们可以根据用户在App中的流程来提取测试点。从用户角度出发,思考用户在使用App时可能会经历的流程,主要包括登录、浏览、搜索、交互等等。我们可以测试这些用户流程中的每一步,以确保App在各个流程中的功能正常。 3. 考虑边界值和异常情况:除了常规的功能测试点外,我们还需要考虑一些边界值和异常情况。例如,对于输入框,我们可以测试其最大长度、特殊字符等;对于时间相关功能,可以测试跨时区、夏令时等情况。通过测试这些边界值和异常情况,可以确保App在不同情况下的稳定性和容错性。 4. 考虑不同平台和设备:如果该App可以在多个平台和设备上运行,我们还需要考虑适配性的测试点。不同平台和设备的分辨率、屏幕比例等因素都可能影响到App的显示和操作。因此,我们需要测试App在不同平台和设备上的兼容性,以确保用户可以正常地使用App。 5. 制定测试计划和策略:最后,我们需要根据提取出的测试点制定详细的测试计划和策略。测试计划应包括测试的时间安排、测试环境的搭建、测试人员分工等内容;测试策略则需要确定具体的测试方法和测试工具。通过制定合理的测试计划和策略,可以高效地执行测试并发现潜在的问题。 总之,通过以上步骤,我们可以针对一个App提取出全面而且有效的测试点,从而保证App的质量和用户体验。 ### 回答3: 针对一个app,提取测试点需要综合考虑以下几个因素: 1. 功能性测试点:首先,需要明确app的主要功能,包括用户注册登录、浏览信息、搜索功能、支付功能等。针对每个功能,可以提取相关的测试点,例如用户登录界面是否正常显示、搜索结果是否准确等。 2. 兼容性测试点:考虑到不同的设备和操作系统版本,需要测试app在不同环境下的兼容性。测试点可以包括设备的尺寸适配情况、不同操作系统版本的兼容性等。 3. 用户体验测试点:用户体验是一个app成功与否的重要因素之一。测试点可以包括界面的友好性、操作的流畅性、响应速度等。 4. 安全性测试点:对于涉及用户信息、支付等敏感数据的app安全性是至关重要的。测试点可以包括用户注册登录时的身份验证机制、支付信息的保护措施等。 5. 性能测试点测试app在不同的负载下的性能表现,包括响应时间、稳定性等。测试点可以包括用户同时在线的数量、处理大量数据时的性能表现等。 6. 其他测试点:根据具体的app特点,还可以提取其他测试点。例如,对于社交类app,可以测试好友关系的建立和维护;对于游戏类app,可以测试游戏操作的灵敏度等。 总之,提取测试点需要全面而有针对性地考虑app的功能、兼容性、用户体验、安全性、性能等方面。测试人员可以根据自身经验和对app的了解,结合具体的需求,提取出适合的测试点

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值