APP渗透测试技巧

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: APP渗透测试技巧

windows下 进行app测试分三步(个人理解)

  1. 安装功能点测试 类似web (过)
  2. adb调试 框架检测
  3. 反编译查找不安全的配置

环境:

adb安卓调试器  

http://adbdownload.com/

夜神模拟器

https://www.yeshen.com/

drozer环境  

https://labs.mwrinfosecurity.com/tools/drozer/

下载adb之后  添加环境变量 就可以使用adb命令

drozer 下载后 点击setup安装到windows ,agent.apk 安装到模拟器

配置drozer

#连接模拟器
adb connect 127.0.0.1:62001
# 本地端口转发模拟器
adb forward tcp:31415 tcp:31415
# 查看是否连接成功
adb devices
# 进入drozer 进入之前 先打开模拟器里的客户端 然后进入安装目录
drozer console connect

进入后 是这个样子

第一次进入的时候 会报错 如下图

提示 java环境变量找不到 需要在当前用户下创建一个.drozer_config文件

[executables]
java=C:\Program Files\Java\jdk1.8.0_201\java.exe
javac=C:\Program Files\Java\jdk1.8.0_201\javac.exe

重新连接 就可以了。

安装apk

adb install apk包

640.png

获取手里里安装包的名称  如果中文乱码了 修改package.py源码

run app.package.list

640.png

找到测试的安装包 -f 指定包名

run app.package.list -f sieve

获取应用的基本信息

run app.package.info -a 包名

是否有暴露的组件攻击面,组件暴露可能导致敏感信息泄露、拒绝服务、权限提升绕过,界面劫持、远程代码执行等安全漏洞

run app.package.attacksurface  包名

根据测试的返回信息可以看出暴露了3个activity组件,2个provisers组件,2个services组件,并且可被调试

对暴露的activity组件进行攻击

run app.activity.info -a 包名

启动组件信息

run app.activity.start –-component 包名 组件名
run app.activity.start –-component com.mwr.example.sieve com.mwr.example.sieve.FileSelectActivity
run app.activity.start –-component com.mwr.example.sieve com.mwr.example.sieve.MainLoginActivity
run app.activity.start –-component com.mwr.example.sieve com.mwr.example.sieve.PWList



测试后发现 第一个是显示系统文件/目录

第二个是进入登录界面

第三个是登录后创建的测试数据

获取Content Provider信息

可以获取到该app还和哪些应用程序有交互,使它指定的一些数据集提供给其他应用程序。那这里可以看到应该是有一些数据库交互,文件备份之类的信息。

run app.provider.info -a 包名

获取所有可以访问的Uri

run scanner.provider.finduris -a 包名

获取各个Uri的数据

run app.provider.query  content://com.mwr.example.sieve.DBContentProvider/Passwords

获取了个人信息 很像mysql 数据结构 尝试是否有sql注入

列出所有表:

run app.provider.query URI --projection "* FROM SQLITE_MASTER WHERE type='table';--"

640.png

获取某个表(如Key)中的数据:

run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM Key;--"

640.png

同时检测SQL注入和目录遍历

run scanner.provider.injection -a packgeName
run scanner.provider.traversal -a packgeName

列出指定文件路径里全局可写/可读的文件

run scanner.misc.writablefiles --privileged 安装目录
run scanner.misc.readablefiles --privileged 安装目录

大致组件漏洞这么多了,还有其他的可自行百度。

第二块 就是反编译了

使用apktool.jar 将apk 解包

640.png

查看xml文件 是否有非安全的配置

数据任意备份

android:allowBackup属性值是否设置为false  当属性为true 数据会被导出

640.png

640.png

程序被任意调试

android:debuggable=”true”

加壳保护

然后使用工具反编译java代码

重命名apk 为zip 解压后有class.dex 使用dex-tools 转换jar包


d2j-dex2jar.bat classes.dex

使用jd-gui打开jar包

并没有加壳

查看是否做了代码混淆

包中 并没有a b c d ab cd 之类的都没有 没有做任何混淆

个人经验大致就这么多,后续粉丝们 可以投稿 深入交流。

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
6月前
|
Java Android开发
Rockchip系列之CAN APP测试应用实现(4)
Rockchip系列之CAN APP测试应用实现(4)
100 1
|
6月前
|
测试技术 UED Python
App自动化测试:高级控件交互技巧
Appium 的 Actions 类支持在移动应用自动化测试中模拟用户手势,如滑动、长按等,增强交互性测试。ActionChains 是 Selenium 的概念,用于网页交互,而 Actions 专注于移动端。在Python中,通过ActionChains和W3C Actions可以定义手势路径,例如在手势解锁场景中,先点击设置,然后定义触点移动路径执行滑动解锁,最后验证解锁后的元素状态。此功能对于确保应用在复杂交互下的稳定性至关重要。
128 5
|
2月前
|
测试技术
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。
66 4
|
3月前
【Azure App Service】同一个App Service下创建多个测试站点的方式
【Azure App Service】同一个App Service下创建多个测试站点的方式
|
3月前
|
网络协议 安全 前端开发
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
|
3月前
|
测试技术
一款功能完善的智能匹配1V1视频聊天App应该通过的测试CASE
文章列举了一系列针对1V1视频聊天App的测试用例,包括UI样式、权限请求、登录流程、匹配逻辑、消息处理、充值功能等多个方面的测试点,并标注了每个测试用例的执行状态,如通过(PASS)、失败(FAIL)或需要进一步处理(延期修改、待定、方案再定等)。
63 0
|
3月前
|
Linux C#
【Azure App Service】C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application
【Azure App Service】C#下制作的网站,所有网页本地测试运行无误,发布至Azure之后,包含CHART(图表)的网页打开报错,错误消息为 Runtime Error: Server Error in '/' Application
|
4月前
|
前端开发 开发者
移动端-------app开发02,了解apicloud功能和使用,真机测试
移动端-------app开发02,了解apicloud功能和使用,真机测试
|
6月前
|
XML 数据格式
Xpath高阶定位技巧,轻松玩转App测试元素定位!
XPath是一种用于XML文档中节点定位的语言,支持逻辑运算符(and、or、not)、轴定位、谓词和内置函数。
85 0
|
6月前
|
XML 测试技术 数据格式
解决 App 自动化测试的常见痛点
在App自动化测试中,常见挑战包括启动加载慢和弹框干扰。为处理弹框,可以创建一个黑名单列表,遍历并点击消除。使用`handleAlertByPageSource()`方法结合`getPageSource()`判断弹框元素在当前页面的存在性,提高效率。对于首页加载延迟,使用显示等待特定元素如`user_profile_container`,但需注意弹框可能阻止元素定位。因此,结合PageSource判断首页元素和弹框,确保加载完成判断的准确性。通过这样的优化,能更有效地处理自动化测试中的中断问题。
68 1