no image
[DIVA] 4. Insecure Data Storage - Part 2
🎯 Objectivemyuser 테이블에 저장된 ID/PW 를 획득하거나, 테이블 구조 자체를 삭제(DROP) 하여 보호장치 없는 DB 저장을 검증하라.1️⃣ 코드 & 취약점 분석전체 코드public class InsecureDataStorage2Activity extends AppCompatActivity { private SQLiteDatabase mDB; @Override // android.support.v7.app.AppCompatActivity, android.support.v4.app.FragmentActivity, android.support.v4.app.BaseFragmentActivityDonut, android.app.Activity protected void onC..
2025.05.09
no image
[DIVA] 3. Insecure Data Storage - Part 1
🎯 Objective앱이 3rd-party 자격증명(ID/PW)을 어디에, 어떻게 저장하는지 찾아서 값을 확보하라.🏗️ 시나리오 & 풀이 Step-by-Step 단계작업핵심 포인트① 입력 & 저장앱 화면에서 admin / admin 입력 → SAVE CREDENTIALS 클릭saveCredentials() 호출, SharedPreferences 에 저장② 저장 위치 파악- run-as 명령으로 전용 스토리지 진입 bash adb shell run-as jakhar.aseem.diva ls shared_prefs- 나의 경우엔 Android Studio Device Explorer 사용일반 모드의 앱이라도 run-as 로 접근 가능(디버그 빌드)③ 파일 덤프bash cat shared_prefs/jak..
2025.05.08
no image
[DIVA] 2. Hardcoding Issues
🎯 Objective앱 내부에 하드코딩 된 민감 정보가 무엇인지 찾아 입력-우회로 정상 플로우를 트리거하라.🔍 풀이jadx-gui로 APK 디컴파일jakhar.aseem.diva.HardcodeActivity1 확인 → 문자열 "vendorsecretkey" 를 비교. 3. 실제 단말에서 동일 값을 입력 → Access granted! 토스트 출력 → 완료 🛠 Root Cause민감 데이터(백도어 키)가 소스에 그대로 포함자바 바이트코드는 디컴파일이 쉬워 비밀 유지 불가🚧 Mitigation방법설명서버-사이드 검증키 값은 서버에 저장, TLS로 전송NDK & 암호화추출 난이도 ↑ but Security by Obscurity 한계런타임 시크릿 주입CI/CD 단계에서 환경변수 → BuildCon..
2025.05.08
no image
[DIVA] 1. Insecure Logging
🛠️ DIVA 소개 & Insecure Logging 문제 풀이DIVA(“Damn Insecure and Vulnerable App”) 는 OWASP MSTG 학습 목적의 안드로이드 워게임입니다.각 단계마다 실전에서 자주 발생하는 모바일 취약점을 체험하며 “원인–악용–대응” 흐름을 스스로 실습할 수 있게 설계되었습니다.이번 글에선 1단계 Insecure Logging 문제를 다뤄 보겠습니다.1. 문제 개요 : Insecure LoggingObjective : “어디서·어떻게 민감 정보가 로그에 남는지 찾아라”힌트 : 개발자가 인증정보/세션 ID/카드번호 등을 무심코 Log.*() 로 남기면 공격자가 Logcat을 통해 그대로 열람 가능2. 풀이앱 실행 → “Insecure Logging” 단계 선택카드..
2025.05.05