Season 1
-
문제풀이 목표: 자격 증명이 저장되는 위치/방법 및 취약한 코드를 찾습니다. 힌트: 안전하지 않은 데이터 저장은 기밀 정보를 시스템에 안전하지 않게 저장한 결과입니다(예: 암호화 불량, 일반 텍스트, 액세스 제어 문제 등). 이번에도 입력한 값을 저장 시 서드파티에 저장하여 사진은 넘어가겠다. 코드를 확인해보면, 패키지 디렉터리에서 임시 파일을 생성하여 입력한 값을 저장하고 있다. 패키지 디렉터리의 임시파일을 확인해본 결과, 입력한 데이터가 평문으로 저장되어 있다.
[Android] 05. 취약한 데이터 저장소 - Part 3문제풀이 목표: 자격 증명이 저장되는 위치/방법 및 취약한 코드를 찾습니다. 힌트: 안전하지 않은 데이터 저장은 기밀 정보를 시스템에 안전하지 않게 저장한 결과입니다(예: 암호화 불량, 일반 텍스트, 액세스 제어 문제 등). 이번에도 입력한 값을 저장 시 서드파티에 저장하여 사진은 넘어가겠다. 코드를 확인해보면, 패키지 디렉터리에서 임시 파일을 생성하여 입력한 값을 저장하고 있다. 패키지 디렉터리의 임시파일을 확인해본 결과, 입력한 데이터가 평문으로 저장되어 있다.
2022.11.29 -
문제풀이 목표: 자격 증명이 저장되는 위치/방법 및 취약한 코드를 찾습니다. 힌트: 안전하지 않은 데이터 저장은 기밀 정보를 시스템에 안전하지 않게 저장한 결과입니다(예: 암호화 불량, 일반 텍스트, 액세스 제어 문제 등). 이번에도 Part1처럼 서드파티에 저장되었다고 Toast가 출력되었다. 코드를 확인하니, SQLite에 입력값이 저장되는 것을 확인하였다. openOrCreateDatabase을 통해 ids2이라는 DB 파일을 생성했다는 것을 알 수 있었다. DIVA 어플리케이션의 패키지 디렉터리에서 ids2 파일을 찾아서 확인해보니, 데이터가 평문으로 저장되어 있었다.
[Android] 04. 취약한 데이터 저장소 - Part 2문제풀이 목표: 자격 증명이 저장되는 위치/방법 및 취약한 코드를 찾습니다. 힌트: 안전하지 않은 데이터 저장은 기밀 정보를 시스템에 안전하지 않게 저장한 결과입니다(예: 암호화 불량, 일반 텍스트, 액세스 제어 문제 등). 이번에도 Part1처럼 서드파티에 저장되었다고 Toast가 출력되었다. 코드를 확인하니, SQLite에 입력값이 저장되는 것을 확인하였다. openOrCreateDatabase을 통해 ids2이라는 DB 파일을 생성했다는 것을 알 수 있었다. DIVA 어플리케이션의 패키지 디렉터리에서 ids2 파일을 찾아서 확인해보니, 데이터가 평문으로 저장되어 있었다.
2022.11.29 -
문제풀이 목표: 자격 증명이 저장되는 위치/방법 및 취약한 코드를 찾습니다. 힌트: 안전하지 않은 데이터 저장은 기밀 정보를 시스템에 안전하지 않게 저장한 결과입니다(예: 암호화 불량, 일반 텍스트, 액세스 제어 문제 등). 입력 시 서드파티에 저장했다는 문구가 출력되었다. 확인을 위해 코드를 확인해본 결과, SharedPreferences 객체에 의해서 다른 곳으로 저장되는 것을 확인 할 수 있었다. 인터넷에서 SharedPreferences 객체의 저장 위치를 찾아 저장된 파일을 확인을 하려고 했지만, 해당 기기에서 root 권한이 없어 접근을 할 수 없었다. adb root 명령을 통해 adb에 root 권한을 부여한 후 확인해보면 접근이 가능했다. SharedPreferences의 파일을 확인하니..
[Android] 03. 취약한 데이터 저장소 - Part 1문제풀이 목표: 자격 증명이 저장되는 위치/방법 및 취약한 코드를 찾습니다. 힌트: 안전하지 않은 데이터 저장은 기밀 정보를 시스템에 안전하지 않게 저장한 결과입니다(예: 암호화 불량, 일반 텍스트, 액세스 제어 문제 등). 입력 시 서드파티에 저장했다는 문구가 출력되었다. 확인을 위해 코드를 확인해본 결과, SharedPreferences 객체에 의해서 다른 곳으로 저장되는 것을 확인 할 수 있었다. 인터넷에서 SharedPreferences 객체의 저장 위치를 찾아 저장된 파일을 확인을 하려고 했지만, 해당 기기에서 root 권한이 없어 접근을 할 수 없었다. adb root 명령을 통해 adb에 root 권한을 부여한 후 확인해보면 접근이 가능했다. SharedPreferences의 파일을 확인하니..
2022.11.29 -
문제풀이 목표: 하드코딩된 항목과 위치를 알아냅니다. 힌트: 개발자는 때때로 쉽게 민감한 정보를 하드코딩합니다. 임의의 숫자를 삽입하여 ACCESS 버튼을 클릭 시 "Access denied! See you in hell :D"이라는 실패 문구를 Toast로 출력되었다. 코드를 살펴보니, 입력값이 vendorsecretkey이라는 문구와 일치하면 "Acccess granted! See you on the other side :)"이라는 인증 성공 문구를 Toast로 출력하는 것을 확인할 수 있다. 실제 앱에서 vendorsecretkey를 삽입하여 요청 시 인증 성공 문구가 출력되었다.
[Android] 02. 하드코딩 이슈 - Part 1문제풀이 목표: 하드코딩된 항목과 위치를 알아냅니다. 힌트: 개발자는 때때로 쉽게 민감한 정보를 하드코딩합니다. 임의의 숫자를 삽입하여 ACCESS 버튼을 클릭 시 "Access denied! See you in hell :D"이라는 실패 문구를 Toast로 출력되었다. 코드를 살펴보니, 입력값이 vendorsecretkey이라는 문구와 일치하면 "Acccess granted! See you on the other side :)"이라는 인증 성공 문구를 Toast로 출력하는 것을 확인할 수 있다. 실제 앱에서 vendorsecretkey를 삽입하여 요청 시 인증 성공 문구가 출력되었다.
2022.11.29 -
문제풀이 목표 : 기록되는 위치/방법 및 취약한 코드를 찾으십시오. 힌트 : 안전하지 않은 로깅은 개발자가 자격 증명, 세션 ID, 금융 세부 정보 등과 같은 민감한 정보를 내부적으로 또는 비간섭적으로 기록할 때 발생합니다. 일단 임의의 숫자를 삽입하여 CHECK OUT 버튼을 클릭 시 "An error occured.Please try again later"이라는 오류 문구를 Toast로 띄어줬다. adb shell ps | grep "diva" 명령을 통해 디바이스에서 실행 중인 DIVA 어플리케이션의 PID를 확인을 하였다. 확인한 PID를 adb logcat의 pid 옵션에 넣어 DIVA 어플리케이션의 로그만 출력하도록 설정하였다. 출력된 로그에서 입력한 값을 검색해보니, 평문으로 출력되는 것을 ..
[Android] 01. 취약한 로깅문제풀이 목표 : 기록되는 위치/방법 및 취약한 코드를 찾으십시오. 힌트 : 안전하지 않은 로깅은 개발자가 자격 증명, 세션 ID, 금융 세부 정보 등과 같은 민감한 정보를 내부적으로 또는 비간섭적으로 기록할 때 발생합니다. 일단 임의의 숫자를 삽입하여 CHECK OUT 버튼을 클릭 시 "An error occured.Please try again later"이라는 오류 문구를 Toast로 띄어줬다. adb shell ps | grep "diva" 명령을 통해 디바이스에서 실행 중인 DIVA 어플리케이션의 PID를 확인을 하였다. 확인한 PID를 adb logcat의 pid 옵션에 넣어 DIVA 어플리케이션의 로그만 출력하도록 설정하였다. 출력된 로그에서 입력한 값을 검색해보니, 평문으로 출력되는 것을 ..
2022.11.29 -
보호되어 있는 글입니다.
정보보호 공시제도의 이해보호되어 있는 글입니다.
2022.11.27