[오늘의 학습목표]
1. 입력값이 어디에 저장되는지
2. 취약한 코드형태 확인
[모바일 취약점 진단 실습 4. Insecure Data Storage - PART 2]
4. Insecure Data Storage - PART 2 을 클릭하면 유저네임과 패스워드가 어디에 저장되는 지 확인하는 문제가 나온다.
아무 값이나 입력하면 3rd party credentials saved successfully! 라는 문구가 뜨며, 계정이 저장된 것을 확인할 수 있다.
여기까진 PART 1과 동일하다.
JADX 툴로 해당 메시지를 찾아보자. 검색값이 4개 나오는데 딱 봐도 InsecureDataStorage2Activity가 나온다.
더블클릭하면 해당 Activity로 이동이 된다.
import로 선언된 패키지를 보면 SQLiteDatabase를 사용하고 있는 것을 확인 가능하다.
메시지가 뜨는 Toast문이 포함된 함수에 사용자가 입력한 데이터가 INSERT INTO myuser 라는 SQL구문을 통해 myuser라는 테이블에 삽입되는 것을 확인 가능하다.
자. ADB를 통해 안드로이드 내부 데이터베이스에 접근해서 실제로 아까 입력한 값이 myuser 테이블에 저장됐는지 확인해보자.
ADB shell로 DIVA 패키지 확인
명령어 |
adb shell cd /data/data/ ls |
DIVA 패키지로 이동하여 데이터베이스에 접근
명령어 |
cd jakhar.aseem.diva/ ls -al |
데이터베이스에서 앱에서 계정(test)을 입력했을 때의 시간으로 수정된 파일이 보인다.
명령어 |
cd databases/ ls -al |
해당 파일은 db파일로 nox에 내재되어 있는 sqlite를 통해 확인 가능하다.
아주 편하게 명령어만 입력하면 된다는 말씀~
sqlite를 통해 테이블에 접근하면 myuser라는 테이블을 확인 가능하다.
명령어 |
sqlite3 ids2 .tables |
해당 테이블을 덤프떠서 확인해보면 아까 앱에서 입력한 계정 test가 평문으로 저장되어 있는 것을 확인 가능하다.
명령어 |
.dump myuser |
[오늘의 학습]
앱 내부 저장소인 databases의 위치, 저장된 정보를 보는 방법을 배웠으며, 해당 공간에 중요정보가 평문으로 저장되면 취약하다는 것을 알 수 있었다.
[참고]
- 인프런 : 안드로이드-앱-모의해킹-진단-완벽-실습
'보안 > Android 취약점 진단' 카테고리의 다른 글
[DIVA] 모바일 취약점 진단 5. Insecure Data Storage - PART 3 (0) | 2024.10.22 |
---|---|
[DIVA] 모바일 취약점 진단 3. Insecure Data Storage - PART 1 (0) | 2024.09.19 |
[에러] 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 |