drozer安全测试
前提条件:
1.下载 并安装adb工具
链接:https://pan.baidu.com/s/1Dj5uoat1a_mBiR3b7g5W2g
提取码:jzhn
下载解压后如下(尽可能避免使用中文目录):
将该路径添加到系统变量中:
常用adb命令:
adb devices :查看当前连接设备
adb devices -l :查看当前链接设备显示详细信息
adb forward tcp:31415 tcp:31415 :PC上所有31415端口通信数据将被重定向到手机端31415端口server上
其他具体的参数操作:https://adbshell.com/commands
drozer
drozer启用:
1.手机需要先安装drozer-agent,并启动服务
2.在dos页面使用adb进行端口转发:adb forward tcp:31415 tcp:31415(默认端口是31415)
3.在PC上,使用drozer控制台进行连接:
drozer.bat console connect
drozer测评
1.查看终端设备所有APK
run app.package.list
关键词查询
run app.package.list -f tj
2.查看包的详细信息
run app.package.info -a com.tjfae.financialapp
包含的内容有:版本号,数据存放在手机上的路径,安装时关于应用程序允许的权限的详细信息。
3.识别攻击面
run app.package.attacksurface com.ziyou.youman
上面结果说明我们有很多潜在的问题,这个app上的 ‘exports’ 有的几个让其他应用程序可以访问的activities(应用程序使用的屏幕)、内容提供者(数据库对象)、服务(后台工作者)。同时有一点,该服务是可调试的,这意味着我们可以使用ADB逐步通过代码将调试器附加到进程。
4.启动页面的activity
通过 app.activity.info 我们可以知道哪些activity是可以导出的
只有启动页是我们希望有的activity,其余两个都不希望有,因为这些activity是可以导出的,而不需要任何许可(如登录时输入密码),我们可以通过drozer启动它,如下:
dz> run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList
dz>help app.activity.start 查看更多使用信息
5、从内容提供者读取
接下来,我们可以收集有关应用程序可导出的内容提供者的更多信息。
这儿显示了前面攻击的两个可导出的内容提供者
(1)Database-backed Content Providers (数据泄露)
drozer提供了一个扫描模块,它汇集了各种猜测路径,并列出了一个可访问的列表,可扫描出哪些
(2)现在我们可以使用其他的drozer模块从这些内容URI中检索信息,甚至修改数据库中的数据:
查询数据库中的信息:
6、Database-backed Content Providers (sql注入)
android平台促进使用SQLite数据库来存储用户数据。由于这些数据库使用SQL,对于SQL注入来说,它们很容易受到攻击,。通过操作传递到的投影和选择字段来测试SQL注入是很简单的。
Android返回一个非常冗长的错误消息,显示它试图执行的整个查询。我们可以充分利用这个漏洞来列出数据库中的所有表:
或查询其他受保护的表
详情请看上面大佬的博客,本文充当笔记。