반응형
설명
은행 앱을 실행하면 로그인 화면이 뜨고, 사용자에게 계정을 입력받는다.
존재하는 계정이면 로그인되어 메인 메뉴가 실행되고 은행 관련 기능을 이용할 수 있다.
이때 액티비티 속성이 취약하게 설정되어 있다면, 인증 로직을 무시하고 필요한 액티비티를 강제 호출하여
권한이 없는 액티비티에 접근할 수 있다.
취약점 진단
태그 내의 android:exported 속성이 true로 설정되어 있으면 다른 애플리케이션에서 해당 액티비티를 실행할 수 있다.
> nox_adb shell am start -n com.android.insecurebankv2/.changePassword -e uname jack
비밀번호 변경 시 이전 비밀번호를 입력 받는 코드가 구현되어 있지 않으므로
액티비티 강제 호출 명령어를 통해 특정 사용자("jack")의 비밀번호를 변경할 수 있다.
대응방안
①
애플리케이션 혹은 같은 사용자 ID만 실행 가능하도록 exported 속성 값을 "false"로 설정한다. ②
액티비티에 exported 속성이 존재하지 않으면 "false"이며 인텐트 필터가 포함되면 true 상태로 변경되니 ③
비밀번호 변경 전 추가로 인증받는 절차를 추가한다.반응형
'해킹-보안 > 모바일' 카테고리의 다른 글
브로드캐스트 리시버 취약점 (0) | 2020.12.07 |
---|---|
취약한 콘텐츠 프로바이더 접근 (0) | 2020.12.07 |
취약한 HTTP 통신 및 파라미터 조작 취약점 (0) | 2020.12.07 |
안전하지 않은 로깅 취약점 (2) | 2020.12.06 |
로컬 암호화 취약점 & SD 카드 저장소 취약점 (0) | 2020.12.06 |