Android学習10日目---ローカル拒否サービスの脆弱性の一つ

1779 ワード

ローカルコンポーネントがサービス攻撃を拒否
まずいくつかの科学普及のシーケンス化に何をあげて、どうしてシーケンス化します
シーケンス化とは、Javaオブジェクトをバイトシーケンスに変換して1つのストレージメディアに格納するプロセスです.逆にバイトシーケンスをJavaオブジェクトに復元するプロセスを逆シーケンス化と呼ぶ.
なぜJVM(Java Virtual Machine(Java仮想マシン))Javaオブジェクトをシーケンス化するのかは、JVMが実行されていることを前提としているので、JVMが実行されていない場合や、他のマシンのJVMで指定したjavaオブジェクトを取得することはできません.シーケンス化操作はjavaオブジェクトをストレージメディアに保存し,以上の不可能な場合でもJavaオブジェクトを使用することができる.したがって、シーケンス化の主な役割は次のとおりです.
       ,               ;
               ;
             。

Androidでのシーケンス化
Androidでは、多くの部品(Activity,Fragment,Service)の間でIntentを介していくつかのデータを渡す必要がありますが、一般的なタイプのデータであればPutExtra()を介して伝えることができ、オブジェクトであればシーケンス化してから渡す必要があります.Androidには2つのシーケンス化インタフェース、SerializableとParcelableがあります.
Serializable:(JavaSE      )            、   、   、rmi       。
Parcelable:(Android    )  Serializable    ,               Android   (AIDL)          ,           。

Parcelableを使用すると、Serializableよりも効率が高く、メモリにのみデータが存在します.一方、Serializableは、反射を使用しているため、比較的遅いので、メモリ間だけでデータを転送する場合はParcelableが推奨され、保存やネットワーク転送を行う場合はSerializableが選択されます.
テキストリンク
この一つの抜け穴は
さらにAndroid Intentを
紹介する
他のアプリケーションのsetComponentを呼び出す
IntentでComponent使用
AndroidシステムDOS収集
このwooyun知識ベースを見てみましょう
ローカル拒否サービス
1)脆弱性の場所:
getIntent()のintentに付属するデータの処理
2)脆弱性トリガの前提条件:
getIntent()のintentには空のデータ、異常または奇形のデータが付属しています.getXXXXExtra()で取得したデータを処理する際に異常キャプチャを行わなかった.
3)脆弱性原理:
Androidシステムでは、アプリケーション間の相互作用と通信を支援するためのIntentメカニズムが提供されており、アプリケーションで一度に操作された動作、動作に関するデータ、付加データの記述を担当しており、システムでは、このIntentの記述に基づいて、対応するコンポーネントを見つけ、呼び出したコンポーネントにIntentを渡し、コンポーネントの呼び出しを完了する.呼び出されたコンポーネントは、Intent付加データを処理する際に異常キャプチャが行われないため、空データ、異常、または奇形データを処理するとアプリケーションがクラッシュする.
具体的にはここを見て
wooyunの例を見てみましょう
検索入力方式空バイト拒否サービス
この中のはいいですね.カードを見ることができます.