最近在学习Android APP客户端漏洞挖掘过程中,对Android APP端漏洞挖掘做了一个基本的梳理总结本节主要是在介绍Android APP漏洞挖掘过程中,使用常见的Android漏洞挖掘工具的安装和使用办法,帮助Android漏洞挖掘人员提供便利。本文里面一部分的介绍采摘与网络博客,大家可以点击对应的网址进行查看。
为什么选择drozer+Inspeckage+Mobsf三个工具呢,这是因为在我进行Android APP漏洞挖掘的过程中,这三个工具很好的提供了自动化的分析和一些对应的hook技术,极大的方便了Android APP漏洞挖掘工作。下面将依次介绍每一种工具的安装和使用,后续继续会用一些案例来实际操作。
根据中国互联网协会APP数据安全测评服务工作组在2020年发布的《移动应用安全形势研究报告》中显示,2020 年度收录存在安全漏洞威胁的 APK 860 万余个,同 一 App 普遍存在多个漏洞。其中存在的 Janus 漏洞风险 App 数量最多,占监测总量的 78.13%;其次是 Java 代码加壳检 测,占总量的 62.45%;排在第三位的是动态注册 Receiver 风险,占总量的 61.16%。
根据爱加密的Android客户端常见漏洞调研显示,Android方向的漏洞总共可以分为三个方面:组件安全、业务安全、数据安全。
我们可以看出针对不同的安全问题,我们在进行Android APP漏洞挖掘的过程中,也应该有针对性的进行漏洞挖掘。我们更加具体的组件分类,可以大致查看一些Android APP常见安全漏洞:https://ayesawyer.github.io/2019/08/21/Android-App%E5%B8%B8%E8%A7%81%E5%AE%89%E5%85%A8%E6%BC%8F%E6%B4%9E/
根据Android 安全分析平台的Android APP审计系统显示,这也为我们进行Android APP客户端的漏洞挖掘提供了详细的方案:
综上,我们对Android APP漏洞挖掘和Android安全测试就有了一个初步的认识,接下来我们来看这三个神器具体是怎么安装和使用,帮助我们移动安全分析人员提供便利。
我们在这里主要列举Windows端和Linux端的安装:
1.Windows端:
我们在Windows安装时,首先需要配置环境:
我们先从官网上下载drozer(RPM)和agent.apk
服务端安装:
我们下载drozer(RPM)后解压,然后点击setup安装,一路默认安装就可以了,它会自动安装到C:\drozer文件夹下
我们检测是否成功安装,进入bin目录下,在cmd中执行drozer.bat,出现下面的图就说明成功安装了
客户端安装:
我们将agent.apk 安装到手机上:
安装完成后手机启动drozer,点击右下角开启端口转发按钮
然后我们在电脑的终端中输入命令转发端口:
最后我们在终端中进入drozer的安装目录下,输入命令运行:
此时我们就可以正常使用drozer框架,来进行我们的测试工作了。
2.Linux端安装(Kali)
Linux上的安装因为需要的库比较多,所以很容易出错,大家最好按照这个步骤一步步来
一些drozer安装常规问题解决方案:https://blog.csdn.net/Jession_Ding/article/details/82528142
drozer的一些常用指令:
我们在测试过程中,常用测试指令:
四大组件模块:
获取APP包信息:
我们先下载安装Inspeckage模块,在xposed中勾选:
然后手机重启,激活Xposed中该模块,就完成正常的安装了
客户端:
我们进入Inspeckage应用程序,可以配置其相关的信息:
我们查看APP的配置界面:
客户端使用步骤:
服务端:
我们在电脑上访问 http://127.0.0.1:8008,就可以进入服务端的web界面
首先我们来介绍Tag界面:
Data dir:数据文件树
主要提供我们APP运行过程中一些数据存储的位置
主界面的各字段含义依次为:
我们进入设置界面:
Replace界面:
Replace界面主要是用来替换hook的方法参数和返回值的,所以我们顺便看一下hook界面
点击新建hook界面
点击替换界面
Location界面:
这里官方是指可以替换GPS位置信息,不过平时在使用过程中用的并不多
Fingerprint(指纹信息)界面:
这个功能界面还是十分强大的,我们可以在这里替换一些我们设备常见的参数值,这样可以在我们进行一些测试工作的时候,可以绕过一些检测,比如我们可以更改IMEI、IMSI等等
Tip界面:
这里主要是介绍我们在Android分析操作过程中的一些检测方法,一些例子
Logcat界面:
这里主要提供我们在程序运行过程中的一些日志信息,和我们ddms的作用一致
Windows安装:
安装环境
安装要求
安装步骤:
一般我们在运行的时候,会出现一些报错,例如:
例如:IPAddress.com首页
然后我们进入C:\WINDOWS\system32\drivers\etc ,修改hosts文件并保存
然后我们重新启动run.bat,再输入127.0.0.1,就可以发现正常的进入不报错误
同理在后面访问过程中,出现类似错误按照此解决方案就可以解决
但是由于这一般是由于网络受限原因导致,所以可能改了仍然会存在报错,但是一般不会影响正常使用,要彻底解决可以修改代码,大家可以尝试一下
docker安装:
Linux安装:
Mac安装:
我们直接拖入一个APP开始分析:
我们可以看见APP正在进行逆向分析
静态分析:
我们点击最近扫描就可以看见我们最近扫描的一些APP情况:
我们随便点击一个应用的静态报告,就可以看见详细的静态分析结果
动态分析:
我们需要安装Genymotion并注册账号,创建一个模拟器,这里我创建的是7.0模拟器
我们启动创建的模拟器
然后重新启动MobSF,在平台上点击Dynamic Analyzer发现新的内容,点击MobSFy Android Runtime给模拟器安装插件
然后我们点击动态分析,开始进行动态分析
在这个过程中,我们可能会遇到各种错误,这里我们依次来解决:
点击start Instrumentation 开始自动化的遍历扫描
我们还可以实时查看API监测情况:
然后我们产生动态分析报告
本文针对Android APP漏洞做了一个初步的介绍,先调研了当下的一些主流漏洞,以及常见的Android APP端漏洞挖掘方式,还结合APP漏洞审计系统,详细的列出了当下Android APP端漏洞挖掘的初步思路,为漏洞挖掘安全人员提供一个参考。
本文还介绍了Android APP漏洞挖掘过程中的三种常用的工具drozer+Inspeckage(Xposed)+MobSF,详细介绍了三种工具的安装和具体使用教程,能很好的帮助Android 漏洞挖掘和渗透测试人员的工作。
本文的知识总结来自个人学习总结和网络上大量博客的收集,所有的博客都会列在参考列表中,可能还有一些总结不足,后续逐步完善以及欢迎各位大佬指正。
github首页:github
Android APP漏洞:
drozer:
Inspeckage:
MobSF:
drozer是一款针对Android系统的安全测试框架,可以分成两个部分:其一是“console”,它运行在本地计算机上;其二是“server”,它是一个安装在目标Android设备上的app,当使用console与Android设备交互时,就是把Java代码输入到运行在实际设备上的drozer代理(agent)中。
根据drozer官方的描述,drozer主要是有助于Android研究人员去测试一些共享的Android漏洞,对于远程攻击,可以生成shellcode来帮助开发人员将drozer Agent 部署为远程管理员工具,从而最大程度利用设备。
drozer是一个全面的安全审计和攻击框架,可以进行更快的Android安全评估,通过自动化繁琐和耗时的工作,帮助减少Android安全评估所花费的时间。还可以针对真实的Android设备进行测试,drozer不需要启用USB调试或其他开发功能,还可以自动化和扩展,测试公共漏洞的暴露程度。
drozer是一款针对Android系统的安全测试框架,可以分成两个部分:其一是“console”,它运行在本地计算机上;其二是“server”,它是一个安装在目标Android设备上的app,当使用console与Android设备交互时,就是把Java代码输入到运行在实际设备上的drozer代理(agent)中。
根据drozer官方的描述,drozer主要是有助于Android研究人员去测试一些共享的Android漏洞,对于远程攻击,可以生成shellcode来帮助开发人员将drozer Agent 部署为远程管理员工具,从而最大程度利用设备。
drozer是一个全面的安全审计和攻击框架,可以进行更快的Android安全评估,通过自动化繁琐和耗时的工作,帮助减少Android安全评估所花费的时间。还可以针对真实的Android设备进行测试,drozer不需要启用USB调试或其他开发功能,还可以自动化和扩展,测试公共漏洞的暴露程度。
(
1
)drozer官方地址:https:
/
/
labs.f
-
secure.com
/
tools
/
drozer
/
(
2
)drozer github:https:
/
/
github.com
/
mwrlabs
/
drozer
(
3
)下载及drozer用户手册:https:
/
/
labs.mwrinfosecurity.com
/
tools
/
drozer
/
(
1
)drozer官方地址:https:
/
/
labs.f
-
secure.com
/
tools
/
drozer
/
(
2
)drozer github:https:
/
/
github.com
/
mwrlabs
/
drozer
(
3
)下载及drozer用户手册:https:
/
/
labs.mwrinfosecurity.com
/
tools
/
drozer
/
jdk1.
8
python
2.7
android sdk
其中python的版本必须为
2.7
版本,因为drozer现在只支持python2.
7
版本
jdk1.
8
python
2.7
android sdk
其中python的版本必须为
2.7
版本,因为drozer现在只支持python2.
7
版本
adb install agent.apk
adb forward tcp:
31415
tcp:
31415
adb forward tcp:
31415
tcp:
31415
drozer console connect
首先,我们需要将python环境配置成python
2.7
.
0
wget https:
/
/
github.com
/
FSecureLABS
/
drozer
/
releases
/
download
/
2.4
.
4
/
drozer
-
2.4
.
4
-
py2
-
none
-
any
.whl
apt
-
get
-
-
assume
-
yes install python
-
pip
pip2 install wheel
pip2 install pyyaml
pip2 install pyhamcrest
pip2 install protobuf
pip2 install pyopenssl
pip2 install twisted
pip2 install service_identity
pip2 install drozer
-
2.4
.
4
-
py2
-
none
-
any
.whl
安装jdk8: apt
-
get install
-
-
assume
-
yes openjdk
-
8
-
jdk
-
headless
安装adb: apt
-
get
-
-
assume
-
yes install adb
下载客户端并安装:https:
/
/
labs.f
-
secure.com
/
tools
/
drozer
/
在客户端中打开
31415
端口,然后进行端口转发:
adb forward tcp:
31415
tcp:
31415
最后启动drozer:drozer console connect
参考网址:
https:
/
/
blog.csdn.net
/
LoopherBear
/
article
/
details
/
84030567
https:
/
/
github.com
/
FSecureLABS
/
drozer
/
issues
/
350
https:
/
/
github.com
/
FSecureLABS
/
drozer
/
issues
/
357
首先,我们需要将python环境配置成python
2.7
.
0
wget https:
/
/
github.com
/
FSecureLABS
/
drozer
/
releases
/
download
/
2.4
.
4
/
drozer
-
2.4
.
4
-
py2
-
none
-
any
.whl
apt
-
get
-
-
assume
-
yes install python
-
pip
pip2 install wheel
pip2 install pyyaml
pip2 install pyhamcrest
pip2 install protobuf
pip2 install pyopenssl
pip2 install twisted
pip2 install service_identity
pip2 install drozer
-
2.4
.
4
-
py2
-
none
-
any
.whl
安装jdk8: apt
-
get install
-
-
assume
-
yes openjdk
-
8
-
jdk
-
headless
安装adb: apt
-
get
-
-
assume
-
yes install adb
下载客户端并安装:https:
/
/
labs.f
-
secure.com
/
tools
/
drozer
/
在客户端中打开
31415
端口,然后进行端口转发:
adb forward tcp:
31415
tcp:
31415
最后启动drozer:drozer console connect
参考网址:
https:
/
/
blog.csdn.net
/
LoopherBear
/
article
/
details
/
84030567
https:
/
/
github.com
/
FSecureLABS
/
drozer
/
issues
/
350
https:
/
/
github.com
/
FSecureLABS
/
drozer
/
issues
/
357
>
list
/
/
列出目前可用的模块,也可以使用ls
>
help
app.activity.forintent
/
/
查看指定模块的帮助信息
> run app.package.
list
/
/
列出android设备中安装的app
> run app.package.info
-
a com.android.browser
/
/
查看指定app的基本信息
> run app.activity.info
-
a com.android.browser
/
/
列出app中的activity组件
> run app.activity.start
-
-
action android.intent.action.VIEW
-
-
data
-
uri http:
/
/
www.google.com
/
/
开启一个activity,例如运行浏览器打开谷歌页面
> run scanner.provider.finduris
-
a com.sina.weibo
/
/
查找可以读取的Content Provider
> run app.provider.query content:
/
/
settings
/
secure
-
-
selection
"name='adb_enabled'"
/
/
读取指定Content Provider内容
> run scanner.misc.writablefiles
-
-
privileged
/
data
/
data
/
com.sina.weibo
/
/
列出指定文件路径里全局可写
/
可读的文件
> run shell.start
/
/
shell操作
> run tools.setup.busybox
/
/
安装busybox
>
list
auxiliary
/
/
通过web的方式查看content provider组件的相关内容
>
help
auxiliary.webcontentresolver
/
/
webcontentresolver帮助
> run auxiliary.webcontentresolver
/
/
执行在浏览器中以http:
/
/
localhost:
8080
即可访问
以sieve示例
> run app.package.
list
-
f sieve
/
/
查找sieve应用程序
> run app.package.info
-
a com.mwr.example.sieve
/
/
显示app.package.info命令包的基本信息
> run app.package.attacksurface com.mwr.example.sieve
/
/
确定攻击面
> run app.activity.info
-
a com.mwr.example.sieve
/
/
获取activity信息
> run app.activity.start
-
-
component com.mwr.example.sieve com.mwr.example.sieve.PWList
/
/
启动pwlist
> run app.provider.info
-
a com.mwr.example.sieve
/
/
提供商信息
> run scanner.provider.finduris
-
a com.mwr.example.sieve
/
/
扫描所有能访问地址
> run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
-
-
vertical
/
/
查看DBContentProvider
/
Passwords这条可执行地址
> run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
-
-
projection
"'"
/
/
检测注入
> run app.provider.read content:
/
/
com.mwr.example.sieve.FileBackupProvider
/
etc
/
hosts
/
/
查看读权限数据
> run app.provider.download content:
/
/
com.mwr.example.sieve.FileBackupProvider
/
data
/
data
/
com.mwr.example.sieve
/
databases
/
database.db
/
home
/
user
/
database.db
/
/
下载数据
> run scanner.provider.injection
-
a com.mwr.example.sieve
/
/
扫描注入地址
> run scanner.provider.traversal
-
a com.mwr.example.sieve
> run app.service.info
-
a com.mwr.example.sieve
/
/
查看服务
>
list
/
/
列出目前可用的模块,也可以使用ls
>
help
app.activity.forintent
/
/
查看指定模块的帮助信息
> run app.package.
list
/
/
列出android设备中安装的app
> run app.package.info
-
a com.android.browser
/
/
查看指定app的基本信息
> run app.activity.info
-
a com.android.browser
/
/
列出app中的activity组件
> run app.activity.start
-
-
action android.intent.action.VIEW
-
-
data
-
uri http:
/
/
www.google.com
/
/
开启一个activity,例如运行浏览器打开谷歌页面
> run scanner.provider.finduris
-
a com.sina.weibo
/
/
查找可以读取的Content Provider
> run app.provider.query content:
/
/
settings
/
secure
-
-
selection
"name='adb_enabled'"
/
/
读取指定Content Provider内容
> run scanner.misc.writablefiles
-
-
privileged
/
data
/
data
/
com.sina.weibo
/
/
列出指定文件路径里全局可写
/
可读的文件
> run shell.start
/
/
shell操作
> run tools.setup.busybox
/
/
安装busybox
>
list
auxiliary
/
/
通过web的方式查看content provider组件的相关内容
>
help
auxiliary.webcontentresolver
/
/
webcontentresolver帮助
> run auxiliary.webcontentresolver
/
/
执行在浏览器中以http:
/
/
localhost:
8080
即可访问
以sieve示例
> run app.package.
list
-
f sieve
/
/
查找sieve应用程序
> run app.package.info
-
a com.mwr.example.sieve
/
/
显示app.package.info命令包的基本信息
> run app.package.attacksurface com.mwr.example.sieve
/
/
确定攻击面
> run app.activity.info
-
a com.mwr.example.sieve
/
/
获取activity信息
> run app.activity.start
-
-
component com.mwr.example.sieve com.mwr.example.sieve.PWList
/
/
启动pwlist
> run app.provider.info
-
a com.mwr.example.sieve
/
/
提供商信息
> run scanner.provider.finduris
-
a com.mwr.example.sieve
/
/
扫描所有能访问地址
> run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
-
-
vertical
/
/
查看DBContentProvider
/
Passwords这条可执行地址
> run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
-
-
projection
"'"
/
/
检测注入
> run app.provider.read content:
/
/
com.mwr.example.sieve.FileBackupProvider
/
etc
/
hosts
/
/
查看读权限数据
> run app.provider.download content:
/
/
com.mwr.example.sieve.FileBackupProvider
/
data
/
data
/
com.mwr.example.sieve
/
databases
/
database.db
/
home
/
user
/
database.db
/
/
下载数据
> run scanner.provider.injection
-
a com.mwr.example.sieve
/
/
扫描注入地址
> run scanner.provider.traversal
-
a com.mwr.example.sieve
> run app.service.info
-
a com.mwr.example.sieve
/
/
查看服务
(
1
)Activity:
app.activity.forintent
-
-
找到可以处理已指定的包
app.activity.info
-
-
获取activity组件信息
app.activity.start
-
-
开启activity组件
scanner.activity.browsable
-
-
获取可从web浏览器调用的所有可浏览的activity组件
(
2
)Service:
app.service.info
-
-
获取service组件信息
app.service.send
-
-
向服务组件发送消息并显示答复
app.service.start
-
-
开启service组件
app.service.stop
-
-
停止service组件
(
3
)Content Provider:
app.provider.columns
-
-
在内容提供程序中列出列
app.provider.delete
-
-
在内容提供程序中删除
app.provider.download
-
-
在内容提供程序中下载支持文件
app.provider.finduri
-
-
在包中查找引用的内容URIS
app.provider.info
-
-
获取Content Provider组件信息
app.provider.insert
-
-
插入到Content Provider组件中
app.provider.query
-
-
查询Content Provider组件
app.provider.read
-
-
从支持文件的Content Provider读取
app.provider.update
-
-
更新Content Provider的记录
scanner.provider.finduris
-
-
搜索可从上下文中查询的Content Provider
scanner.provider.injection
-
-
测试Content Provider的注入漏洞
scanner.provider.sqltables
-
-
查找可通过SQL注入漏洞访问的表
scanner.provider.traversal
-
-
测试Content Provider的基本目录遍历漏洞
(
4
)Broadcast Receivers:
app.broadcast.info
-
-
获取有关广播接收器的信息
app.broadcast.send
-
-
带目的发送广播
app.broadcast.sniff
-
-
注册一个能嗅出特定意图的广播接收器
(
1
)Activity:
app.activity.forintent
-
-
找到可以处理已指定的包
app.activity.info
-
-
获取activity组件信息
app.activity.start
-
-
开启activity组件
scanner.activity.browsable
-
-
获取可从web浏览器调用的所有可浏览的activity组件
(
2
)Service:
app.service.info
-
-
获取service组件信息
app.service.send
-
-
向服务组件发送消息并显示答复
app.service.start
-
-
开启service组件
app.service.stop
-
-
停止service组件
(
3
)Content Provider:
app.provider.columns
-
-
在内容提供程序中列出列
app.provider.delete
-
-
在内容提供程序中删除
app.provider.download
-
-
在内容提供程序中下载支持文件
app.provider.finduri
-
-
在包中查找引用的内容URIS
app.provider.info
-
-
获取Content Provider组件信息
app.provider.insert
-
-
插入到Content Provider组件中
app.provider.query
-
-
查询Content Provider组件
app.provider.read
-
-
从支持文件的Content Provider读取
app.provider.update
-
-
更新Content Provider的记录
scanner.provider.finduris
-
-
搜索可从上下文中查询的Content Provider
scanner.provider.injection
-
-
测试Content Provider的注入漏洞
scanner.provider.sqltables
-
-
查找可通过SQL注入漏洞访问的表
scanner.provider.traversal
-
-
测试Content Provider的基本目录遍历漏洞
(
4
)Broadcast Receivers:
app.broadcast.info
-
-
获取有关广播接收器的信息
app.broadcast.send
-
-
带目的发送广播
app.broadcast.sniff
-
-
注册一个能嗅出特定意图的广播接收器
app.package.attacksurface
-
-
-
-
-
-
获取包攻击面
app.package.backup
-
-
-
-
-
-
列出使用备份API的包(在标记“允许备份”时返回true)
app.package.debuggable
-
-
-
-
-
-
查找可调试包
app.package.info
-
-
-
-
-
-
获取有关已安装软件包的信息
app.package.launchintent
-
-
-
-
-
-
获取包的启动意图
app.package.
list
-
-
-
-
-
-
列出程序包
app.package.manifest
-
-
-
-
-
-
获取包的AndroidManifest.xml
app.package.native
-
-
-
-
-
-
查找嵌入在应用程序中的本地库
app.package.shareduid
-
-
-
-
-
-
查找具有共享uid的包
app.package.attacksurface
-
-
-
-
-
-
获取包攻击面
app.package.backup
-
-
-
-
-
-
列出使用备份API的包(在标记“允许备份”时返回true)
app.package.debuggable
-
-
-
-
-
-
查找可调试包
app.package.info
-
-
-
-
-
-
获取有关已安装软件包的信息
app.package.launchintent
-
-
-
-
-
-
获取包的启动意图
app.package.
list
-
-
-
-
-
-
列出程序包
app.package.manifest
-
-
-
-
-
-
获取包的AndroidManifest.xml
app.package.native
-
-
-
-
-
-
查找嵌入在应用程序中的本地库
app.package.shareduid
-
-
-
-
-
-
查找具有共享uid的包
1.
连接drozer:
drozer.bat console connect
2.
列出详细APP信息:
run app.package.info
-
a com.xxx.xxxx
3.
查看APP的配置信息
run app.package.manifest com.xxx.xxxx
3.
分析是否存在攻击攻击点
run app.package.attacksurface com.xxx.xxxx
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Activity测试:
4.
获取Activity信息
命令 run app.activity.info
-
a
示例 run app.activity.info
-
a com.xxx.xxxx
5.Activity
跳转
命令:run app.activity.start
-
-
component 软件包名 软件包名.对应exported的activtiy
示例:run app.activity.start
-
-
component com.example.test com.example.test.Activity
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Service测试:
6.
获取service信息
命令 run app.service.info
-
a
示例 run app.service.info
-
a com.xxx.xxxx
7.
发送service服务
命令:run app.service.start
-
-
component 软件包名 软件包名.对应exported的activtiy
-
-
extra 数据
示例:run app.service.start
-
-
component com.example.test com.example.test.Activity
-
-
extra string phone
12345678901
-
-
extra string content Hello
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Broadcast Receivers测试:
8.
获取Broadcast信息
命令 run app.broadcast.info
-
a
示例 run app.broadcast.info
-
a com.xxx.xxxx
9.
注册一个能嗅出特定意图的广播接收器
命令:app.broadcast.sniff
-
-
action
"活动"
示例:app.broadcast.sniff
-
-
action
"ddns.actiton.Token"
10.
发送广播
命令:run app.broadcast.send
-
-
action 广播名
-
-
extra string name lisi
示例:run app.broadcast.send
-
-
action org.owasp.goatdroid.fourgoats.SOCIAL_SMS
-
-
extra string phoneNumber
1234
-
-
extra string message dog
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
contentProvider测试:
11.
获取contentProvider信息
命令:run app.provider.info
-
a
示例:run app.provider.info
-
a com.xxx.xxxx
12.
获取所有可访问的Uri
命令 run scanner.provider.finduris
-
a
示例 run scanner.provider.finduris
-
a com.xxx.xxxx
13.
检测SQL注入
命令 run scanner.provider.injection
-
a
示例 run scanner.provider.injection
-
a com.xxx.xxxx
14.
检测目录遍历
命令 run scanner.provider.traversal
-
a
示例 run scanner.provider.traversal
-
a com.xxx.xxxx
15.
进行SQL注入
命令 run app.provider.query [
-
-
projection] [
-
-
selection]
示例 run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
列出所有表 run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
-
-
projection
"* FROM SQLITE_MASTER WHERE type='table';--"
获取单表(如Key)的数据 run app.provider.query content:
/
/
com.mwr.example.sieve.DBContentProvider
/
Passwords
/
-
-
projection
"* FROM Key;--"
16.
读取文件系统下的文件
示例 run app.provider.read content:
/
/
com.mwr.example.sieve.FileBackupProvider
/
etc
/
hosts
17.
下载数据库文件到本地
示例 run app.provider.download content:
/
/
com.mwr.example.sieve.FileBackupProvider
/
data
/
data
/
com.mwr.example.sieve
/
databases
/
database.db d:
/
database.db
1.
连接drozer:
drozer.bat console connect
2.
列出详细APP信息:
run app.package.info
-
a com.xxx.xxxx
3.
查看APP的配置信息
run app.package.manifest com.xxx.xxxx
3.
分析是否存在攻击攻击点
run app.package.attacksurface com.xxx.xxxx
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Activity测试:
4.
获取Activity信息
命令 run app.activity.info
-
a
示例 run app.activity.info
-
a com.xxx.xxxx
5.Activity
跳转
命令:run app.activity.start
-
-
component 软件包名 软件包名.对应exported的activtiy
示例:run app.activity.start
-
-
component com.example.test com.example.test.Activity
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
Service测试:
6.
获取service信息
命令 run app.service.info
-
a
示例 run app.service.info
-
a com.xxx.xxxx
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2022-4-12 17:07
被随风而行aa编辑
,原因: drozer指令修改