美文网首页
Android 安全 —— 本地拒绝服务漏洞

Android 安全 —— 本地拒绝服务漏洞

作者: Star丶Xing | 来源:发表于2019-10-29 15:03 被阅读0次

概述

Activity / Service / BroadcastReceiver / ContentProvider 的 export 设置为 true 时,攻击者可以向这些组件发送畸形 Intent 。

<activity android:name=".demo.DemoActivity"
          android:export="true"
          ....

危害

攻击者可以轻易地向Activity等发送自己的 Intent ,如果 Intent 携带空数据,或则畸形数据等,如果 Activity 内部处理接收到的 Intent 没有进行格式格式校验或者异常捕获,造成程序崩溃。

class DemoActivity extends BaseActivity {
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
        Intent  data =  getIntent();
        String name = data.getStringExtra("name");// 攻击者发送 data == null 时,会造成程序 NullPointer
        
     }
}

防范

  • 仅仅程序内部使用的 Activity 等设置 export 为 false
  • 处理 Intent 数据时,进行 try-catch 防止数据格式异常
class BaseReceiver extends BroadcastReceiver{
    public final void onReceive(Context context, Intent intent){
        if( context != null && intent != null) {
            try {
                String action = intent.getAction();
                if("com.demo.test".equlals(action)){
                    String name = intent.getStringExtra("name");
                    //...
                }
            }catch(Throwable t){
                t.printStackTrace();
                return;
            }
        }
    }
}
  • 如果export为true,添加permission安全字段

相关文章

网友评论

      本文标题:Android 安全 —— 本地拒绝服务漏洞

      本文链接:https://www.haomeiwen.com/subject/znfgvctx.html