[오늘의 학습목표]
1. 입력값이 어디에 저장되는지
2. 취약한 코드형태 확인
[모바일 취약점 진단 실습 3. Insecure Data Storage - PART 1]
3. Insecure Data Storage - PART 1 을 클릭하면 유저네임과 패스워드가 어디에 저장되는 지 확인하는 문제가 나온다.
아무 값이나 입력하면 3rd party credentials saved successfully! 라는 문구가 뜨며, 계정이 저장된 것을 확인할 수 있다.
그럼 이 계정은 어디에 저장되었을까?
jadx를 통해 소스코드를 살펴보자.
텍스트 검색을 통해 toast 메시지 값을 검색하면 4개의 activity가 나온다.
그 중 InsecureDataStorage1Activity 인 첫번째 줄을 더블클릭하면 해당 문구가 있는 activity를 바로 열어준다.
아래의 코드를 보면 SharedPreference에 값을 저장하고 있는 것을 알 수 있다.
*SharedPreference란? 간단하게 값을 저장할 때 쓰임(해당 내용은 나중에 정리해두겠다.)
그러면 sharedpreference로 가서 값이 저장되었는지 확인해보자.
adb shell로 들어가서 data로 이동해주자
명령어 |
adb shell ls |
해당 폴더를 보면 지금 nox에 설치되어있는 앱들이 좌라락 나열되어있다.
우리가 설치한 diva앱은 맨 아래에 있다. 해당 패키지로 이동하자.
명령어 |
cd /data/data ls |
해당 패키지에 shared_prefs라는 디렉터리를 확인할 수 있다.
해당 디렉터리에 방금 우리가 입력한 값이 저장됐는지 확인하자. 오른쪽 캡처본은 아까 입력한 값이 저장된 화면이다.
명령어 |
cd jakhar.aseem.diva/ //diva패키지로 이동 ls -al //패키지 내 디렉터리 확인(sharedpreference 확인) cd shared_prefs //shared_prefs 디렉터리 이동 ls -al //디렉터리 내부 확인 cat jakhar.aseem.diva_preferences.xml //xml파일 내용 출력 |
[오늘의 학습]
앱 내부에 간단하게 정보를 저장할 수 있는 공간인 sharedpreference에 대해서 알게 되었고, 해당 공간에 중요정보가 저장되면 취약하다는 것을 알 수 있었다.
[참고]
- 인프런 : 안드로이드-앱-모의해킹-진단-완벽-실습
'보안 > Android 취약점 진단' 카테고리의 다른 글
[DIVA] 모바일 취약점 진단 5. Insecure Data Storage - PART 3 (0) | 2024.10.22 |
---|---|
[DIVA] 모바일 취약점 진단 4. Insecure Data Storage - PART 2 (0) | 2024.10.21 |
[에러] adb.exe: no devices/emulators found 해결 (0) | 2024.09.19 |
[DIVA] 모바일 취약점 진단 2. HARDCODING ISSUES - PART 1 (0) | 2024.09.12 |
[DIVA] 모바일 취약점 진단 1. INSECURE LOGGING (1) | 2024.09.11 |