自从去了新公司之后,工作太忙,变的有点懒了,很久没有更新Blog。今天跟几个小伙伴一起吃饭,小伙伴提起我的Blog,想想是该更新更新了,就把我投稿给sobug的这篇转过来吧,关于Android app安全测试的基础东东,在Sobug 的url:

https://sobug.com/article/detail/7

背景

最近这两年移动端真是非常火,每个单位或多或少都会有那么几款App,对于我们Web安全攻城师来说,App安全也需要或多或少的了解一些。年初单位来了一位对App安全略有研究的小伙伴,某日闲来无事教了笔者几招,分享给大家。有句古语:”工欲善其事,必先利其器”,我们要研究App安全,没有几款高大上的神器是会非常麻烦的,因此本文主要给大家分享一下笔者学到的一些基础知识,主要是一些移动端测试辅助工具的使用。

模拟器

模拟器笔者经常使用有两款,一款是BlueStacks,这款个人感觉是做的非常不错的,一般安装操作App非常流畅,不会有卡死的情况。另外一款就是SDK模拟器(Software Development Kit)了,这款是特别高大上的,类似虚拟机vm一样,可以建立多个虚拟机,安装不同的android系统。

BlueStacks

下载地址:

安装的时候会提示安装”给力助手”,给力助手是辅助操作的,可以安装电脑上下载的app安装包到模拟器,也可以卸载已经安装的,还有很多针对模拟器的设置功能,如图:

BlueStacks安装之后,安装APP,打开App界面如图:

功能方面使用都非常简单,本文就不做介绍了。

Software Development Kit

下载地址:

下载之后打开包中的eclipse,然后进行模拟器Android镜像的下载,包中自带的镜像是Android 5.0的镜像,建议下载老版本的,方便测试App,新版的镜像部分App在安装的过程中可能会有不兼容的情况。

SDK Android镜像的下载如下图所示:

下载完Android镜像之后就可以安装虚拟机了,具体如下:

抓包神器

抓app包的方法有很多种,比如手机设置代理用BurpSuite进行抓包,或者可以用fidder抓包。我比较习惯用一款小工具smsniff进行抓包,使用起来比较方便,抓到的包再放到Burpsuite进行修改提交等。工具如图:

这款工具比较小巧,占用资源较少,有些时候用burp等抓包会发生错误,或者直接导致虚拟机上的app无法连接网络,用这款就不会发生以上说的情况。

SDK小工具

SDK中自带了几款很不错的小工具,我比较常用的有adb和emulator。ADB是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是android设备。SDK包中默认就有这俩款小工具

Adb

Adb命令如下:

adb devices 查看启动的虚拟机设备,如图:

adb install,安装app到已经打开的虚拟机中,如图:

这样就将本地下载的app安装到了已经启动android虚拟机中了。

adb shell,登录设备shell,如图:

adb push,将电脑上的文件发送的android虚拟机上;adb pull,将android虚拟机上的文件发送到电脑上,如图:

Adb命令非常强大,以上只是列出了比较基础的几个,详细的大家可以百度。

Emulator

Emulator命令我目前常用的就两招,启动android虚拟机,以代理模式启动android虚拟机。命令分别如下:

其中xiaomi是我新建的android虚拟机的名字,设置代理启动之后,就可以用burp进行抓包了。

反编译工具

反编译app主要用apktool和d2j-dex2jar.bat,我比较常用的是dex2jar。

Apktool反编译命令如下:

命令执行之后会在apktool.jar所在目录下生成一个app的目录。

d2j-dex2jra.bat反编译方法如下:

用rar打开apk文件,将其中的classes.dex解压出来,然后执行命令d2j-dex2jar.bat d:\Appsec\xx\classes.dex

执行完成之后会在d2j-dex2jar.bat相同目录下生成一个.jar的文件,可以用jd-gui.exe直接打开.jar来查看app的源代码,如图:

案例分享

App安全测试,我只能测测简单的,大多是权限绕过类的,比如绕过锁屏密码、任意用户登录等。基本都是因为app代码设计缺陷或者权限验证不足导致的。

任意用户登录

某次测试一个app,RP比较好,发现一任意用户登录漏洞。在本地的配置文件中有登录用户的帐号和密码,APP设计比较奇葩,只是验证了用户登录邮箱,没有验证密码,导致通过修改本地的配置文件就可以实现任意用户登录,登录之后能够查看别人的订单等数据。在android虚拟机中安装的app都在/data/data目录下,大概的目录结构如下:

app安装目录下的结构都是差不多的,主要有缓存文件、数据库目录、本地文件、配置文件等。比较重要的目录有databases、shared_prefs。分别保存了数据库文件和配置文件。

言归正传,查看了安装app的shared_prefs目录,发现其中一个文件内容如下:

可以看到有用户的登录邮箱和密码,将邮箱修改成存在的用户邮箱,密码随意输入,然后adb shell之后,用linux命令删除android虚拟机上已经存在的配置文件,再用adb push将修改后的文件发送到android虚拟机,再打开app发现已经用其它用户成功登录了。

写在最后

APP安全接触的不多,技术比较菜,因此本文分享的基本都是工具的使用,比较基础。非常感谢夕阳童鞋,是我的App安全启蒙老师!

最后编辑:2015-02-08作者:admin

这个作者貌似有点懒,什么都没有留下。

移动端安全测试主要涉及_Android APP安全测试基础相关推荐

  1. aap渗透_Android App渗透测试工具分享

    这段时间因为某些原因接触了Android App渗透测试,发现了几个不错的App渗透测试工具(虽然这些工具早就出来了 2333),搭建测试环境的过程中遇到了一些问题,特地总结一下,希望能给大家带来帮助 ...

  2. axt测试软件,【测试工具】这些APP实用测试工具,不知道你就out了!

    本期,我将给大家介绍14款实用的测试工具,希望能够帮到大家!(建议收藏) UI自动化测试工具 1. uiautomator2 Github地址:https://github.com/openatx/u ...

  3. 骨龄测试软件app_【测试工具】这些APP实用测试工具,不知道你就out了!

    本期,我将给大家介绍14款实用的测试工具,希望能够帮到大家!(建议收藏) UI自动化测试工具 1. uiautomator2 Github地址:https://github.com/openatx/u ...

  4. aap渗透_Android App渗透测试工具汇总

    一. drozer简介 drozer(以前称为Mercury)是一款Android安全测试框架. drozer允许您通过承担应用程序的角色并与Dalvik VM,其他应用程序的IPC端点和底层操作系统 ...

  5. 【测试实操】APP启动时间测试

    [前提条件] 电脑已安装adb,检验方式:在命令行中输入adb之后,会有adb相关命令打印,如下: 手机和电脑使用数据线连接,手机端开启USB调试,检验是否连接上的方式:在命令行中输入adb devi ...

  6. TestFlight用法(iOS APP官方测试工具)

    TestFlight用法(iOS APP官方测试工具) 参考资料: TestFlight用法 包教包会(iOS APP官方测试工具) TestFlight使用之外部测试 包教包会(iOS APP官方测 ...

  7. App兼容性测试/MONKEY配置和安装

    App兼容性测试/MONKEY配置和安装 APP测试的兼容性测试 Web测试和App测试有什么区别 性能和稳定性工具---MONKEY 环境配置和安装 云测试平台 APP测试的兼容性测试 上线后进行兼 ...

  8. 网络安全进阶篇(十一章-5)APP渗透测试篇(上)

    每日一句:渗透测试,一定要有耐心,所有的功能点都要测试.很多地方不亲身经历是没有太多的感受的. 一.App渗透测试原理 1.简介App渗透测试与Web渗透测试从某种角度说基本没有区别App其实就是手机 ...

  9. 移动App基本测试流程是什么?

    移动App测试涉及很多内容,如安全测试,含软件权限.安装与卸载安全性.数据安全性.通讯安全性.人机接口安全性:安装.卸载测试.UI测试.导航测试.图形测试.内容测试.运行.应用的前后台切换.数据更新. ...

最新文章

  1. ksql 数量大于2_别人1加1大于2大于3,雍禾植发1加1小于2……
  2. jquery源码之低调的回调函数队列--Callbacks
  3. css html基础书,htmlcss基础知识汇总,新人必看!
  4. java gzip 多个文件_Java Zip多文件压缩和 GZIP压缩
  5. 快速入门Matplotlib
  6. IntelliJ IDEA 2020.x 入门到爱不释手
  7. Java-分析类初始化
  8. Pentium Pro架构/流水线及其优化 (1) - 架构概述
  9. 软件工程1916|W(福州大学)_助教博客】助教总结
  10. 相信自己, 许自己一个未来
  11. react typescript 父组件调用子组件
  12. 音创linux版e100加歌,【图片】音创高清点歌机E100-3D版 火爆上市 现将资料爆出_点歌机吧_百度贴吧...
  13. 【项目经理产品经理简历套话】工作经历和项目经历的套话
  14. 通过pyproj进行WGS84到UTM坐标的转换
  15. OpenCV 实现读取摄像头、视频读取保存 (C++)
  16. VINS-Mono 论文解读(IMU预积分残差+Marg边缘化)
  17. STM32 USB SD读卡器(SDIO)
  18. JAVA版附魔能附几次_附魔系统调整 所有卡片宝珠限制交易1次
  19. 第087讲 http协议深度剖析④-http响应详解(文件下载)
  20. 模式识别Pattern Classification (DHS)英文版原著+中文版翻译+课后答案分享

热门文章

  1. linux抹掉所有分区,找到了linux分区顺序错乱修复方法
  2. oracle fileline换行,Java中的换行符line.separator及file的separator
  3. Python Pandas导出Hbase数据到dataframe
  4. python函数模块关键代码_从零开始学Python(六):函数,模块和类的使用
  5. python36怎么安装_centos 安装 python36
  6. python3.7代码_python3.7idle如何测试源代码
  7. 中如何移动物体在画面中的位置_如何在弱光环境中拍摄运动物体
  8. window.onload=function(){};
  9. [区块链] 密码学——Merkle 树
  10. POJ 1426 Find The Multiple BFS