APP客户端安全评估思路及工具分享

APP客户端安全评估工具分享

所有工具都在APP客户端安全评估工具.zip中,需要的转存到夸克网盘自行下载,及时保存防止失效

https://pan.quark.cn/s/a7fa88275300

反编译保护评估工具

apkscanpkid_jb51.rar

jadx-gui-1.5.3-with-jre-win.zip

安装包签名校验工具

keytool.exe

APP测试神器AndroidKiller(后续很多测试都是用的这款工具)

androidkiller_69033

组件安全测试必备工具(drozer低版本比较稳定)

drozer-installer-2.3.4.zip

夜神模拟器安装包(手机测试效果更佳,有些应用会检测虚拟环境)

夜神模拟器_bh231786891.exe

APP客户端安全评估思路

客户端程序安全

1.反编译保护

双击运行解压出来的jadx-gui-1.5.3.exe
将apk包拖入即可

2.安装包签名

使用keytoll.exe即可查看签名
复制代码
keytool -printcert -jarfile xxxxxx.apk

3.应用完整性校验(可以重新打包是高风险)

配置工具

Android Killer、apktool(官网下载最新版本即可)

替换Android Killer 里的apktool为最新版
新增test.txt看能否重新打包即可

4.程序数据任意备份

查找android:allowBackup

当在AndroidManifest.xml文件中未设置android:allowBackup属性值或,设置android:allowBackup="true"时,可对应用程序私有目录下的所有数据进行备份。

5.程序可被任意调试

查找android:debuggable

当在AndroidManifest.xml文件中设置android:debuggable="true"时,应用程序可以以调试模式启动,并被任意调试器附加调试。

6.资源文件保护

Android apk中的资源主要分为assets资源和res资源两类.Assets资源存放在APP的assets目录下,该类文件是一些原始文件,APP打包时并不会对其进行编译,而是直接打包到APP中,对于这一类资源文件的访问,应用层代码需要通过文件名对其进行访问。Res资源则存放在APP的res目录下,该类资源在APP打包时大多会被编译,变成二进制文件,并会为每个该类文件赋予一个resource id。对于该类资源的访问,应用层代码则是通过resource id进行访问的.Android apk开发过程中公司大都提倡命名规范化,因此通过文件名称非常容易理解其含义,这样有利于开发者理解和维护应用,但是同时也给应用破解者提供了方便,破解者通过这些命名很容易便可找到他们需要的文件位置,并理解这些文件的意图。

看反编译后的代码有没有进行混淆

组件安全

测试工具准备

Android Killer、apktool(官网下载最新版本即可)、夜神模拟器(安装包在压缩包中)

首先运行setup.exe安装drozer程序
夜神模拟器安装并运行agent

在夜神模拟器上安装agent.apk,安装完成后运行,点击右下角显示为"关闭"的按钮使其转变为"开启"状态:

进行adb连接

打开夜神模拟器的bin目录,该目录中有adb程序nox_adb.exe,打开命令行运行以下命令:>nox_adb.exe forward tcp:31415 tcp:31415

打开drozer的安装目录,打开命令行运行以下命令进行连接:

>drozer console connect

1.Activity组件越权

待测APP的包名在工程信息中,com.xxx.xxx.xxx

列出可被调用的activity组件

run app.activity.info -a [package name]

2.Activity拒绝服务

在模拟器中打开测试app,然后在drozer命令行中使用以下命令逐个调用activity组件,观察是否会引起app崩溃,造成拒绝服务:

逐个调用activity组件

run app.activity.start --component [package name] [component name]

3.Activity劫持

Activity劫持是指当启动某个窗口组件时,被恶意应用探知.若该窗口界面是恶意程序预设的攻击对象,恶意应用将启动自己仿冒的界面覆盖原界面。用户在毫无察觉的情况下输入登录信息,恶意程序在把获取的数据返回给服务端。

使用Activity劫持测试工具,网上自行搜索

4.Service组件越权

列出待测app可被外部调用的Service组件列表

run app.service.info -a [package name]

逐个调用Service,检查是否会能进行进程管理或其他越权操作

run app.service.start --component [package name] [component name]

5.Service拒绝服务

逐个调用Service组件,观察是否会引起app崩溃,造成拒绝服务

run app.service.start --component [package name] [component name]

6.BroadcastReceiver组件越权

列出待测app可被外部调用的Receiver组件列表

run app.broadcast.info -a [package name]

7.BroadcastReceiver拒绝服务

逐个调用Receiver组件,观察是否会引起app崩溃,造成拒绝服务:

run app.broadcast.send --component [package name] [component name]

8.Content Provider SQL注入

列出待测app可被外部调用的Provider组件列表:

run app.provider.info -a [package name]

使用以下命令查看有哪些uri可以访问

run scanner.provider.finduris -a [package name]

检测是否存在本地SQL注入漏洞

run scanner.provider.injection -a [package name]

9.Content Provider目录遍历

列出待测app可被外部调用的Provider组件列表:

run app.provider.info -a [package name]

使用以下命令可检测是否存在目录遍历漏洞:

run scanner.provider.traversal -a [package name]

10.WebView远程代码执行

检测是否有调用addJavascriptInterface接口:

全局搜索关键字Landroid/webkit/WebView;->addJavascriptInterface(,检查是否有使用addJavascriptInterface接口。

11.WebView未移除系统默认接口

检查是否处在漏洞影响范围

该漏洞影响范围为Android 4.2及以下,即SDK 17及以下,所以首先检查待测APK限制的最低SDK版本是否是17或以下。

运行环境检测

1.Root环境检测

2.Ptrace注入检测

3.网络环境监测

4.模拟器运行检测

敏感信息安全

1.SharedPreferences明文保存敏感信息

2.SharedPreferences未作加密保护

3.SQLite明文保存敏感信息

4.SQLite未作加密保护

5.Log输出敏感信息

网络通信安全

1.通信加密检测

2.关键字段加密

3.安全退出检测

4.网络切换保护

5.开放端口检测

6.证书有效性

安全策略设置

手势密码安全性

资料来源内部文档,不能提供特别详细教程请见谅

可以看看我的面试题,入职看完整版

https://blog.csdn.net/2301_79090248/article/details/156995183

相关推荐
测试19985 小时前
软件测试 - 单元测试总结
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
影sir7 小时前
Selenium常用函数(等待)
selenium·测试工具
影sir7 小时前
Selenium常用函数(浏览器导航,文件上传,浏览器参数设置)
selenium·测试工具
上海云盾-小余13 小时前
网站恶意爬虫拦截策略:智能识别与封禁实操方案
网络·爬虫·安全·web安全
2301_7807896613 小时前
手游遇到攻击为什么要用SDK游戏盾手游遇到攻击为什么要用 SDK 游戏盾?
安全·web安全·游戏·架构·kubernetes·ddos
黎阳之光15 小时前
黎阳之光:视频孪生重构新能源智慧工地,打造大型风光基地数智化建设标杆
大数据·人工智能·物联网·安全·数字孪生
Agent手记15 小时前
安全生产巡检全流程自动化与隐患预警方案:2026工业Agent落地实战指南
数据库·人工智能·安全·ai·自动化
效能革命笔记16 小时前
Gitee DevSecOps 智能版本管理:军工软件工厂的依赖治理与供应链安全方案
网络·安全·gitee
未若君雅裁16 小时前
Spring Bean 作用域、线程安全与生命周期
java·安全·spring
企服AI产品测评局16 小时前
实测2026安全培训管理新范式:如何以“视觉大模型”破解AI内容生成与跨系统自动化难题?
人工智能·安全·ai·chatgpt·自动化