アプリ名 | 09社内Webログイン |
アプリの概要 | Android端末から自社のWebシステムを利用可能にするアプリです。 |
アプリを使用するメリット | 利用者はこのアプリを利用する事で、場所を問わずに自社のWebシステムにログインし、利用することができます。 |
主な動作 | Webシステムとアプリの連携をスムーズに行えるようにするため、AndroidクライアントアプリではJavascriptInterfaceを有効にしています。 サーバ側のログイン画面では、画面表示時にJavaScriptを実行し、JavascriptInterface経由で端末の電話番号を取得し、正規の利用者であるかの確認を行います。また、それをログイン後の画面に表示します。 |
サンプルアプリの実装範囲 |
アプリ起動後に社内Webシステムへのログイン画面を表示します。 本アプリはサンプルのため、ID、パスワードの入力を受け取りますが、入力された値に対するチェック、および認証処理を行いません。 |
サンプルアプリ内の脆弱性 | 自社Webシステムのサイトを表示する前提でIntentから受け取ったURLをWebViewに表示するよう実装していましたが、URLのチェックを行っていなかったため、JavascriptInterfaceが有効なWebViewが任意のURLにアクセス可能になっています。 JavascriptInterface経由で呼び出し可能なメソッドで重要な処理を行っており、細工されたJavaScriptを含むWebサイトを表示した場合に、アプリの機能が悪用されてしまう脆弱性が存在しています。 |
サンプルアプリは、以下の環境で動作するように作成されています。
サンプルアプリをビルドするためにはAndroid2.2(API Level 8)以降のSDKがインストールされている必要があります。 実行環境の準備を行い、サンプルプロジェクトをビルド・実行してみましょう。 準備ができていない場合はこちらを参考に準備を行ってください。 |
---|
![]() |
![]() |
![]() |
![]() |
アプリ名 | 09社内Webログインスパイ |
攻撃者の目的 | 攻撃者は「社内Webログインアプリ」の脆弱性を悪用し、端末が持つ重要な情報の窃取を目的としてします。 |
攻撃方法 |
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |