관리 메뉴

Information Security

안전하지 않은 콘텐츠 프로바이더 접근 본문

모바일/InsecureBank 분석

안전하지 않은 콘텐츠 프로바이더 접근

HackingPractice 2019. 7. 14. 10:10

정의
- 콘텐츠 프로바이더를 이용하여 자신의 데이터에 다른 애플리케이션이 접근하거나 부여한 권한대로 이용하도록 할 수 있다.

발생 위치
- com.android.insecurebankv2.TrackUserContentProvider

영향
- 데이터베이스에 저장되어 있는 정보가 노출된다.

진단
프로바이더의 URI 구성에 포함되어 있는 authorities 항목이 TrackUserContentProvider 로 설정되어 있는 것을 확인 할 수 있다.

그림 1-1 TrackUserContentProvider 코드

Drozer의 기능을 이용하여 콘텐츠 프로바이더에 공격 가능한 취약점이 존재하는지 확인했다.

그림 1-2 콘텐츠 프로바이더 취약점 확인

애플리케이션의 콘텐츠 프로바이더 정보를 확인할 수 있다.

그림 1-3 콘텐츠 프로바이더 정보

Scanner.provider.finduris 모듈을 통해 콘텐츠 프로바이더의 URI 주소를 검색하여 접근 가능한 목록을 출력 했다.

그림 1-4 URI 검색

TrackUserContentProvider/trackerusers를 통해 애플리케이션 데이터를 조회했다.

그림 1-5 데이터 조회

일반적인 SQL Injection과 마찬가지로 싱글쿼터(‘’)를 이용하여 취약점을 확인했다. 에러 메시지가 출력되고, 일부 데이터베이스 쿼리가 메시지에 포함되어 있다.

그림 1-6 SQL Injection 확인

데이터베이스 목록 중 names라는 항목이 있는 것을 확인 했기 때문에 names 칼럼을 출력해보았다.

그림 1-7  names 출력

대응방안
- 프로바이더를 선언할 때 exported를 false로 선언해야한다.

콘텐츠 프로바이더를 통해 애플리케이션의 데이터가 유출되지 않도록 하기위해서는 프로바이더를 선언할 때 exported를 false로 선언해야 한다.

그림 1-8 Exported false 수정

콘텐츠 프로바이더 취약점을 검색한 결과 그림 1-2와 다르게 취약점이 존재하지 않았다.

그림 1-9 콘텐츠 프로바이더 취약점 확인

Exported 값을 false로 변경한 후 콘텐츠 프로바이더의 URI 주소를 통해 접근한 결과를 보여준다. 권한이 없다는 메시지가 출력되고 그림 1-5와 같은 결과 값이 나타나지 않는다.

그림 1-10 Fasle 수정 후 테스트

'모바일 > InsecureBank 분석' 카테고리의 다른 글

메모리 내 민감한 정보 저장  (0) 2019.07.14
애플리케이션 패칭  (0) 2019.07.14
루팅 탐지 우회  (0) 2019.07.14
액티비티 컴포넌트 취약점  (0) 2019.07.13
로컬 암호화 이슈  (0) 2019.07.13