[Android APK 진단] 5. DIVA. 입력값 유효성 체크 문제 1 :: YPrefer's Develop&Security

2016/05/31 -  [Security/Android] - [Android APK 진단] 1. 툴 소개 - 추가 16.06.07

2016/06/07 - [Security/Android] - [Android APK 진단] 2. DIVA. 앱 로그 확인하기 1, 하드코딩된 중요정보 확인하기 1

2016/06/07 - [Security/Android] - [Android APK 진단] 3. DIVA. 안전하지 않은 데이터 저장 확인하기 1

2016/06/07 - [Security/Android] - [Android APK 진단] 4. DIVA. 안전하지 않은 데이터 저장 확인하기 2

 

7. Input Validation Issues - Part 1

유저이름으로 정보를 검색하는 화면이다.

Hint 를 보면 세유저의 정보가 데이터베이스에 있고 그중에 하나는 admin으로 주어져 있다.

 

처음에 어떤 화면이 저 소스코드인지 몰라서 메인 화면을 보니까 SQL injection 액티비티인것을 확인했다.

 

소스를 확인하니까 database를 만들고 세 유저의 정보를 넣는 부분을 확인할 수 있다.

 

보통 SQL injection은 웹해킹시에 쓰이지만, android에서도 db를 만들수 있으니 sql injection공격도 가능하다.

아래와 같이 조건문이 무조건 참이 되도록 만들어주면, 모든 정보를 긁어 올 수 있도록 할 수 있다.

 

※ 필자의 경험공유 - 필자는 SQL injection 의 경우는 웹 해킹에서만 경험해 보았다.

웹 해킹에서는 sqlmap이라는 sqlinjection 점검 도구를 사용할 수 있는데, 이 Tool이 문제를 종종 일으켜서 같은 url에

같은 파라미터를 대상으로 시도했어도 결과가 다른 결과가 나오기도 해서 python으로 간단한 sqlinjection을 시도하는 스크립트를 만들기도 했었다.

 

8. Input Validation Issues - Part 2

하단에 URL을 입력하는 화면이 나온다.

 

소스코드를 확인해보면 입력한 구문이 webview의 url로 들어가는 것을 확인할 수 있다.

 

file:// 프로토콜을 이용해 단말의 데이터에 접근할 수 있는데, 현재는 nox 에뮬레이터(ROOT권한을 가짐)으로 shell로 확인할 수 있지만,

루팅되지 않은 단말의 경우 권한 에러가 뜨면서 shell에서는 접근이 불가능하다.

 

+ Recent posts