这几天团队打算一起学习Android App漏洞挖掘方面的知识,于是乎拿了一个app当测试例子,争取在上面找到漏洞。在学习过程中发现Android四大组件的安全性还是占有较大的比重,另外比较关心的是数据的安全性。数据泄漏、明文存储等和数据相关都是比较重要的。但是今天找到的一个漏洞是关于Activity组件的,本地拒绝服务漏洞

同时学习了drozer的使用方法,利用drozer帮忙找漏洞。

下面总结一些常用的drozer命令:

run app.package.info -f xxx

xxx是包名的一部分,运行这条命令之后会显示完整的包名

run app.package.info -a <包名>

运行这条命令会打印出包相关的信息,包括版本、路径、权限、uid、gid等

run app.package.attacksurface <包名>  

运行这条命令之后会打印出这个应用四大组件的攻击面,Activity, Service, Content Provider, Broadcast是否有暴露的风险

run app.activity.info -a <包名>

运行这条命令会打印出exported的activity,并且显示是否需要相应的权限

run app.activity.start --component <包名> <activity>

如果activity是exported并且不需要权限,那么运行这条命令就可以启动相应的activity了

(目前只测试了activity组件,所以关于其他组件的命令暂时还没有使用)

首先说明一下这个本地拒绝服务漏洞的大概原理

通过drozer可以找到exported的activity,而许多activity的调用是不需要权限的,即permission=null。意味着,其他应用无须权限就可以调用这些activity。同时,如果activity的调用是需要参数的,那么在调用时不带上参数就会因为输入异常导致应用崩溃了,这样就造成了本地拒绝服务。

漏洞修补的方法也很简单,可以从以下三个方面下手:

1.不需要被外部调用的activity设置android:exported="false";

2.若需要外部调用,需自定义signature或者signatureOrSystem级别的权限;

3.注册的组件请严格校验输入参数,注意空值判定和类型转换判断

简单的Poc:

Intent intent = new Intent();

intent.setComponent(new ComponentName(<包名>, <activity>));

intent.putExtra("", "");

startActivity(intent);

最新文章

  1. FireDac 的RecordCount 相关测试 记录。
  2. GDI+图形图像处理技术中Pen和Brush的简单使用和简单图形的绘制(C#)
  3. Java对ArrayList进行排序
  4. 【转】G40-70、G50-70联想小新笔记本SR1000随机Linux改Windows 7系统操作指导
  5. [LeetCode#187]Repeated DNA Sequences
  6. JavaScript Maintainable
  7. Javascript语法基础
  8. 修改MYSQL最大连接数的2种方法
  9. Python自动化运维之10、模块之json、pickle、XML、PyYAML、configparser、shutil
  10. C# Socket 简易的图片传输
  11. HDU 5965 三维dp 或 递推
  12. 数位DP入门:(bzoj1833+3209)
  13. [Codeforces 235B]Let&#39;s Play Osu!
  14. [HNOI 2015]接水果
  15. Android--UI之Radio、Check、Toggle
  16. num2cell
  17. mybatis源码分析(一)------------入门
  18. win(64位)环境下oracle11g的安装方法
  19. Java方法的静态绑定与动态绑定讲解(向上转型的运行机制详解)
  20. 未渲染的dom结构,绑定事件,jquery

热门文章

  1. HTTPS GET | POST | DELETE 请求
  2. HTTPS简单介绍
  3. README.md编写
  4. Java调用支付宝支付遇到的坑
  5. 轻松扩展机器学习能力:如何在Rancher上安装Kubeflow
  6. React使用hook
  7. lonic常用组件之五------按钮
  8. 3.10 Go Map哈希表
  9. Oracle分页查询语句的写法
  10. Vue的双向绑定原理