[인시큐어뱅크] 안드로이드 액티비티 (Activity) 취약점
- 안드로이드
- 2020. 4. 17. 01:46
반응형
안드로이드 액티비티 (Activity) 취약점
안드로이드에서 액티비티란 앱 UI를 제공하는 앱 컴포넌트로써 쉽게 말하면 하나의 화면이라고 생각하면 될 것 같다. 액티비티 취약점이 존재하면 공격자가 액티비티를 호출할 권한이 없는데도 강제로 호출할 수 있게 된다. 즉, 권한이 없는 기능을 사용할 수 있게된다.
액티비티는 리시버와 비슷하게 AndroidManifest.xml에서 <activity>로 선언할 수 있다.
안드로이드 액티비티 (Activity) 취약점 진단
위에서 본대로 여러 액티비티가 존재하는데 그 중, DoTransfer 액티비티에 로그인 없이 바로 접근 가능한지 확인해보겠다.
<activity
android:name=".LoginActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".FilePrefActivity"
android:label="@string/title_activity_file_pref"
android:windowSoftInputMode="stateVisible|adjustResize|adjustPan">
</activity>
<activity
android:name=".DoLogin"
android:label="@string/title_activity_do_login" >
</activity>
<activity
android:name=".PostLogin"
android:exported="true"
android:label="@string/title_activity_post_login" >
</activity>
<activity
android:name=".WrongLogin"
android:label="@string/title_activity_wrong_login" >
</activity>
<activity
android:name=".DoTransfer"
android:exported="true"
android:label="@string/title_activity_do_transfer" >
</activity>
<activity
android:name=".ViewStatement"
android:exported="true"
android:label="@string/title_activity_view_statement" >
</activity>
<activity
android:name=".ChangePassword"
android:exported="true"
android:label="@string/title_activity_change_password" >
</activity>
adb로 안드로이드 쉘에 접근해준 후 am명령어를 사용해준다. adb의 am 명령어를 사용하면 액티비티를 실행시킬 수 있는데 (intent를 날림) 사용법은 < am start -a [액션네임] -n [패치지명]/[액티비티명] > 이다. 여기서 인시큐어뱅크의 액티비티의 경우 액션네임이 따로 정의되어있지 않기 때문에 아래 명령어를 사용해도 무방하다.
> am start -n [패치지명]/[액티비티명] >
> am start -n com.android.insecurebankv2/.DoTransfer
(drozer 추가)
안드로이드 액티비티 (Activity) 취약점 진단결과 및 대응방안
- 인시큐어뱅크(InsecureBankv2)의 경우 로그인을 하지 않은 권한없는 사용자가 계좌이체 UI를 실행시킬 수 있으므로 액티비티 취약점이 존재
- 따라서 아래와 같이 AndroidManifest.xml <activity>의 exported="true" 부분을 false로 변경하는것이 필요함
'안드로이드' 카테고리의 다른 글
[인시큐어뱅크] 컨텐츠 프로바이더 (Content Provider) 취약점 (0) | 2020.04.17 |
---|---|
안드로이드 취약점 진단도구, drozer 설치 및 사용법 (0) | 2020.04.17 |
[인시큐어뱅크] 안전하지 않은 로깅 (Insecure Logging) 취약점 (0) | 2020.04.16 |
[인시큐어뱅크] 안드로이드 백업 (Android Backup) 취약점 (0) | 2020.04.15 |
[인시큐어뱅크] 로컬 암호화 (Local Encryption) 관련 취약점 (0) | 2020.04.15 |