본문 바로가기
모바일 앱 진단

안드로이드 drozer를 이용한 앱 취약점 진단 방법-컨텐트 프로바이더-SQL Injection

by jobjonggoing 2019. 12. 23.

1. URIs내 저장된 데이터를 우리는 권한 없이 접근하여 추출할 수 있으며, 여기서 password 필드는 Base64로 인코딩되어 화면에 출력을 확인하고 컨텐트 프로바이더 SQL Injeciton을 시도 시 아래와 같이 Projection 및 Select 연산자를 이용하여 싱글쿼터 " ' " 문자를 입력하였을 때 SQL 에러가 발생 여기서 SQL Injeciton이 취약하다고 판단할수 있다. 

2. key 테이블을 조회 시 Projection 연산자에 의해 이 쿼리는 key 테이블내 모든 컬럼 값을 반환 아래와 같이 테이블을 확인 가능하다.

(run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* from SQLITE_MASTER where type='table';--")

3. Content Provider에 대한 정보 수집 시Key table에 대한 접근이 제한되어 있었으나 SQL Injeciton 공격을 통해 Key table 내 password를 확인 가능한 것을  확인 가능하다

(run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "*from key;--")

이상으로 SQL Injection 공격 가능 여부를 확인 하였다.