转载:Android APP安全测试入门

Android APP安全测试入门








转载地址:https://sobug.com/article/detail/7                作者:nx4dm1n




背景

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


模拟器

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


BlueStacks

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



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


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

Software Development Kit
下载地址: http://developer.android.com/sdk/index.html
        下载之后打开包中的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虚拟机。命令分别如下:
Emulator @xiaomi
Emulator -http-proxy 127.0.0.1:8080 @xiaomi
其中xiaomi是我新建的android虚拟机的名字,设置代理启动之后,就可以用burp进行抓包了。


反编译工具

反编译app主要用apktool和d2j-dex2jar.bat,我比较常用的是dex2jar。
Apktool反编译命令如下:
apktool.jar d e:\Appsec\xxx.apk
命令执行之后会在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安全接触的不多,技术比较菜,因此本文分享的基本都是工具的使用,比较基础。


转载地址:https://sobug.com/article/detail/7                作者:nx4dm1n


注:

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值