일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- vulnhub
- NTFS
- CTF-d
- logstash
- SQL Injection
- diva
- Suninatas
- elasticsearch
- MFT
- igoat
- Openstack
- 2018
- Docker
- 인시큐어뱅크
- beebox
- 안드로이드
- otter
- Volatility
- lord of sql injection
- frida
- base64
- ESXi
- 파이썬
- XSS
- Reflected XSS
- ctf
- foremost
- InsecureBank
- Strings
- kibana
- Today
- Total
Information Security
안전하지 않은 콘텐츠 프로바이더 접근 본문
정의
- 콘텐츠 프로바이더를 이용하여 자신의 데이터에 다른 애플리케이션이 접근하거나 부여한 권한대로 이용하도록 할 수 있다.
발생 위치
- com.android.insecurebankv2.TrackUserContentProvider
영향
- 데이터베이스에 저장되어 있는 정보가 노출된다.
진단
프로바이더의 URI 구성에 포함되어 있는 authorities 항목이 TrackUserContentProvider 로 설정되어 있는 것을 확인 할 수 있다.
Drozer의 기능을 이용하여 콘텐츠 프로바이더에 공격 가능한 취약점이 존재하는지 확인했다.
애플리케이션의 콘텐츠 프로바이더 정보를 확인할 수 있다.
Scanner.provider.finduris 모듈을 통해 콘텐츠 프로바이더의 URI 주소를 검색하여 접근 가능한 목록을 출력 했다.
TrackUserContentProvider/trackerusers를 통해 애플리케이션 데이터를 조회했다.
일반적인 SQL Injection과 마찬가지로 싱글쿼터(‘’)를 이용하여 취약점을 확인했다. 에러 메시지가 출력되고, 일부 데이터베이스 쿼리가 메시지에 포함되어 있다.
데이터베이스 목록 중 names라는 항목이 있는 것을 확인 했기 때문에 names 칼럼을 출력해보았다.
대응방안
- 프로바이더를 선언할 때 exported를 false로 선언해야한다.
콘텐츠 프로바이더를 통해 애플리케이션의 데이터가 유출되지 않도록 하기위해서는 프로바이더를 선언할 때 exported를 false로 선언해야 한다.
콘텐츠 프로바이더 취약점을 검색한 결과 그림 1-2와 다르게 취약점이 존재하지 않았다.
Exported 값을 false로 변경한 후 콘텐츠 프로바이더의 URI 주소를 통해 접근한 결과를 보여준다. 권한이 없다는 메시지가 출력되고 그림 1-5와 같은 결과 값이 나타나지 않는다.
'모바일 > InsecureBank 분석' 카테고리의 다른 글
메모리 내 민감한 정보 저장 (0) | 2019.07.14 |
---|---|
애플리케이션 패칭 (0) | 2019.07.14 |
루팅 탐지 우회 (0) | 2019.07.14 |
액티비티 컴포넌트 취약점 (0) | 2019.07.13 |
로컬 암호화 이슈 (0) | 2019.07.13 |