热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

移动端安全测试主要涉及_AndroidAPP安全测试基础

自从去了新公司之后,工作太忙,变的有点懒了,很久没有更新Blog。今天跟几个小伙伴一起吃饭,小伙伴提起我的Blogÿ

自从去了新公司之后,工作太忙,变的有点懒了,很久没有更新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

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



推荐阅读
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 如何精通编程语言:全面指南与实用技巧
    如何精通编程语言:全面指南与实用技巧 ... [详细]
  • Java测试服务器调试指南详细介绍了如何进行远程调试,并深入解析了Java Xdebug参数的使用方法。本文首先概述了Java内置的调试功能,重点介绍了JDB这一类似于GDB的强大调试工具。通过实例演示,读者可以掌握在测试环境中高效调试Java应用程序的技巧,包括配置远程调试环境和优化调试参数,以提高开发效率和代码质量。 ... [详细]
  • 动态壁纸 LiveWallPaper:让您的桌面栩栩如生(第二篇)
    在本文中,我们将继续探讨如何开发动态壁纸 LiveWallPaper,使您的桌面更加生动有趣。作为 2010 年 Google 暑期大学生博客分享大赛 Android 篇的一部分,我们将详细介绍 Ed Burnette 的《Hello, Android》第三版中的相关内容,并分享一些实用的开发技巧和经验。通过本篇文章,您将了解到如何利用 Android SDK 创建引人入胜的动态壁纸,提升用户体验。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • CAS 机制下的无锁队列设计与实现 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 1. 设置用户密码:使用 `slappasswd` 工具生成加密密码,确保账户安全。具体步骤如下:输入命令 `slappasswd -s NewPassword`,系统将提示重新输入新密码,并生成加密后的哈希值 {SSHA}xxxxxxxxxxxxxxxxx。2. 编写配置文件:编辑 `vildapus` 配置文件,添加必要的用户账户信息,以确保新用户能够顺利登录系统。 ... [详细]
  • 在项目开发过程中,掌握一些关键的Linux命令至关重要。例如,使用 `Ctrl+C` 可以立即终止当前正在执行的命令;通过 `ps -ef | grep ias` 可以查看特定服务的进程信息,包括进程ID(PID)和JVM参数(如内存分配和远程连接端口);而 `netstat -apn | more` 则用于显示网络连接状态,帮助开发者监控和调试网络服务。这些命令不仅提高了开发效率,还能有效解决运行时的各种问题。 ... [详细]
author-avatar
手机用户2602909207
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有