Android静态安全检测 -> Fragment注入攻击漏洞
来源:互联网 发布:上海中医医院挂号 知乎 编辑:程序博客网 时间:2024/04/28 16:38
Fragment注入攻击漏洞 - PreferenceActivity类
一、API
1. 继承关系
【1】java.lang.Object
【2】android.content.Context
【3】android.content.ContextWrapper
【4】android.view.ContextThemeWrapper
【5】android.app.Activity
【6】android.app.ListActivity
【7】android.preference.PreferenceActivity
2. 主要方法
【1】isValidFragment(String fragmentName)
返回Boolean(子类应当重写这个方法,并对fragment进行校验判断)
【2】onCreate(Bundle savedInstanceState),onDestroy(),onStop()
【3】参考链接
https://developer.android.com/reference/android/preference/PreferenceActivity.html#isValidFragment(java.lang.String)
3. PreferenceActivity两个重要的Intent Extra
【1】extra
域包含PreferenceActivity
要动态加载的Fragment
PreferenceActivity.EXTRA_SHOW_FRAGMENT (’:android:show_fragment’)
【2】extra
域包含传给该Fragment
的参数
PreferenceActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS(’:android:show_fragment_arguments’)
4. Fragment与Activity的关系
【1】一个Activity提供了一个单一的屏幕和一些功能(例如,浏览器的书签管理器)
一个Fragment可以被认为是sub-activity,这是应用程序UI的一个小部分
【2】Fragments能够灵活的允许在不同的activities重用,当一个Fragment实例在Activity里面驻留耦合时,不同实例可以嵌入到不同的Activity中
【3】Fragment和Activity的关系图
【4】参考链接
http://wolfeye.baidu.com/blog/android-fragment-injection/
http://bbs.pediy.com/showthread.php?t=183459&highlight=fragment
二、触发条件
1. 继承自PreferenceActivity类
【1】对应到smali语句中的特征
.super Landroid/preference/PreferenceActivity;
2. 判断子类中是否重写isValidFragment方法
【1】对应到smali语句中的特征
r'\.method.+isValidFragment\(Ljava/lang/String;\)Z'
3. 判断Activity是否对外暴露(exported属性为true)
三、漏洞原理
【1】导出的PreferenceActivity的子类中,没有加入isValidFragment方法,进行fragment名的合法性校验,攻击者可能会绕过限制,访问未授权的界面
【2】更多内容
http://drops.xmd5.com/static/drops/mobile-8165.html
四、修复建议
【1】如果应用的Activity组件不必要导出,或者组件配置了intent filter标签,建议显示设置组件的“android:exported”属性为false
【2】重写isValidFragment方法,验证fragment来源的正确性
- Android静态安全检测 -> Fragment注入攻击漏洞
- Android静态安全检测 -> Content Provider组件本地SQL注入漏洞
- Android Fragment注入漏洞
- Android静态安全检测 -> WebView系统隐藏接口漏洞检测
- Android静态安全检测 -> Intent Scheme URL 漏洞
- Android静态安全检测 -> Content Provider文件目录遍历漏洞
- Android静态安全检测 -> HTTPS敏感数据劫持漏洞
- Android静态安全检测 -> Zip文件目录遍历漏洞
- Android静态安全检测 -> 内网测试信息残留漏洞
- Android静态安全检测 -> 强制类型转换本地拒绝服务漏洞
- Android静态安全检测 -> WebView组件远程代码执行漏洞检测
- 如何检测SQL注入和CSS攻击漏洞
- 安全技巧:学会检查SQL注入式攻击漏洞
- Android框架层漏洞-Fragment注入
- Android框架层漏洞-Fragment注入
- Android安全之Https中间人攻击漏洞
- Android框架攻击之Fragment注入
- Android框架攻击之Fragment注入
- java-生产者消费者问题
- 第一次写博客
- 用户进程与内存管理
- Bresenham算法画直线
- Java多线程实用篇之实现Callable接口,处理带有返回值的线程!
- Android静态安全检测 -> Fragment注入攻击漏洞
- systemd一
- 我的设计模式-抽象工厂(Abstract Factory)
- docker清理日志
- Android WebView加载html文本时,图片太大不能适配屏幕
- hdu 5072 Coprime
- w3school之JavaScript
- C——可变参数“...”
- 启动tomcat时打开本地文件