본문 바로가기

카테고리 없음

DIVA 6단계

#1 문제 분석

가. 목적

민감정보가 어디에서 어떻게 저장되는지 알기, 취약점 코드 알기

나. 활용

소스코드, adb

 

#2 취약점 정보

가. 취약점

민감정보를 잘못 저장할 때

나. 취약점인 이유

Path Traversal, Directory Traversal에서 유용하게 쓰일 정보를 소스코드에 담고 있다.

 

 #3 코드 분석

java 코드이다.

1.

import android.os.Environment;

 

안드로이드 운영체제에서 외부 저장소(안드로이드 기기의 외부 메모리(SD카드등))에 접근하기 위한 클래스, 외부 저장소의 상태를 확인하고 외부 저장소에 파일을 읽거나 쓰는 데 사용

  1. 외부 저장소 상태 확인: getExternalStorageState() 메서드를 사용하여 외부 저장소의 상태를 확인할 수 있습니다. 이를 통해 외부 저장소가 마운트되어 있는지, 읽기 전용인지 등의 정보를 얻을 수 있습니다.
  2. 외부 저장소 디렉토리 경로 제공: getExternalStorageDirectory() 메서드를 사용하여 외부 저장소의 루트 디렉토리 경로를 얻을 수 있습니다. 이를 통해 외부 저장소에 파일을 저장하거나 읽을 수 있습니다.
  3. 다양한 환경 변수 제공: Environment 클래스는 외부 저장소와 관련된 여러 환경 변수를 제공합니다. 예를 들어, 외부 저장소의 공용 디렉토리 경로를 제공하는 메서드들이 있습니다.

 

2.

File sdir = Environment.getExternalStorageDirectory();

 

안드로이드 기기의 외부 저장소의 루트 디렉토리를 나타내는 File 객체를 반환

 

3.

File uinfo = new File(sdir.getAbsolutePath() + "/.uinfo.txt");

 

File 클래스의 생성자는 파일 경로를 인자로 받는다.

외부 저장소의 루트 디렉토리 경로인 sdir.getAbsolutePath()와 파일명인 ".uinfo.txt"를 결합하여 외부 저장소에 .uinfo.txt라는 이름의 파일 경로를 생성