워게임
-
문제풀이 목표: 사용자 이름을 모른 채 모든 사용자 데이터에 액세스하려고 합니다. 기본적으로 세 명의 사용자가 있으며 귀하의 임무는 단일 악성 검색으로 세 명의 사용자 모두의 데이터를 출력하는 것입니다. 힌트: 입력을 사용하기 전에 필터링하거나 유효성을 검사하지 않으면 입력 유효성 검사 문제가 부적절하거나 전혀 발생하지 않습니다. 외부에서 입력을 받는 구성 요소를 개발할 때는 항상 유효성을 검사하십시오. 테스트를 쉽게 하기 위해 데이터베이스에 이미 세 명의 사용자가 있습니다. 예를 들어 그 중 한 명은 admin입니다. admin을 검색하여 출력을 테스트할 수 있습니다. 문제의 정보에 나온대로, admin을 입력 시 admin 계정의 정보가 Toast로 출력되었다. 문제는 다른 사람의 정보도 알아내야하는..
[Android] 07. 입력 유효성 검사 문제 - Part 1문제풀이 목표: 사용자 이름을 모른 채 모든 사용자 데이터에 액세스하려고 합니다. 기본적으로 세 명의 사용자가 있으며 귀하의 임무는 단일 악성 검색으로 세 명의 사용자 모두의 데이터를 출력하는 것입니다. 힌트: 입력을 사용하기 전에 필터링하거나 유효성을 검사하지 않으면 입력 유효성 검사 문제가 부적절하거나 전혀 발생하지 않습니다. 외부에서 입력을 받는 구성 요소를 개발할 때는 항상 유효성을 검사하십시오. 테스트를 쉽게 하기 위해 데이터베이스에 이미 세 명의 사용자가 있습니다. 예를 들어 그 중 한 명은 admin입니다. admin을 검색하여 출력을 테스트할 수 있습니다. 문제의 정보에 나온대로, admin을 입력 시 admin 계정의 정보가 Toast로 출력되었다. 문제는 다른 사람의 정보도 알아내야하는..
2022.11.29 -
문제풀이 목표: 자격 증명이 저장되는 위치/방법 및 취약한 코드를 찾습니다. 힌트: 안전하지 않은 데이터 저장은 기밀 정보를 시스템에 안전하지 않게 저장한 결과입니다(예: 암호화 불량, 일반 텍스트, 액세스 제어 문제 등). 이번에도 입력한 값을 저장 시 서드파티에 저장하여 사진은 넘어가겠다. 코드를 확인해보니, getExternalStorageDirectory를 통해 SDcard 위치에 입력 값을 저장한 파일을 생성하였다. SDcard 위치에서 확인해보니, 평문으로 입력 값이 저장된 것을 확인할 수 있었다.
[Android] 06. 취약한 데이터 저장소 - Part 4문제풀이 목표: 자격 증명이 저장되는 위치/방법 및 취약한 코드를 찾습니다. 힌트: 안전하지 않은 데이터 저장은 기밀 정보를 시스템에 안전하지 않게 저장한 결과입니다(예: 암호화 불량, 일반 텍스트, 액세스 제어 문제 등). 이번에도 입력한 값을 저장 시 서드파티에 저장하여 사진은 넘어가겠다. 코드를 확인해보니, getExternalStorageDirectory를 통해 SDcard 위치에 입력 값을 저장한 파일을 생성하였다. SDcard 위치에서 확인해보니, 평문으로 입력 값이 저장된 것을 확인할 수 있었다.
2022.11.29 -
문제풀이 목표: 자격 증명이 저장되는 위치/방법 및 취약한 코드를 찾습니다. 힌트: 안전하지 않은 데이터 저장은 기밀 정보를 시스템에 안전하지 않게 저장한 결과입니다(예: 암호화 불량, 일반 텍스트, 액세스 제어 문제 등). 이번에도 입력한 값을 저장 시 서드파티에 저장하여 사진은 넘어가겠다. 코드를 확인해보면, 패키지 디렉터리에서 임시 파일을 생성하여 입력한 값을 저장하고 있다. 패키지 디렉터리의 임시파일을 확인해본 결과, 입력한 데이터가 평문으로 저장되어 있다.
[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