분류 전체보기
-
문제풀이 목표: 버튼을 클릭하면 API 자격 증명에 액세스할 수 있습니다. 이제 앱 외부에서 API 자격 증명에 액세스해 봅니다. 힌트: 앱의 구성요소는 적절하게 보호되지 않은 경우 다른 앱이나 사용자가 액세스할 수 있습니다. 활동, 서비스, 콘텐츠 제공자와 같은 구성 요소는 이러한 경향이 있습니다. 이번 문제는 버튼을 클릭하지 않고, 위 사진의 액티비티로 이동해야하는 문제이다. 코드를 확인해보니, jakhar.aseem.diva.action.VIEW_CREDS으로 이동되는 코드를 확인할 수 있었다. 해당 액션이 어떤 액티비티를 호출하는지를 알아내기 위해 AndroidManifest.xml에서 찾아보니, APICredsActivity를 호출하는 것을 확인하였다. adb의 am을 이용하여 해당 액티비티 호..
[Android] 09. 접근 제어 이슈 - Part 1문제풀이 목표: 버튼을 클릭하면 API 자격 증명에 액세스할 수 있습니다. 이제 앱 외부에서 API 자격 증명에 액세스해 봅니다. 힌트: 앱의 구성요소는 적절하게 보호되지 않은 경우 다른 앱이나 사용자가 액세스할 수 있습니다. 활동, 서비스, 콘텐츠 제공자와 같은 구성 요소는 이러한 경향이 있습니다. 이번 문제는 버튼을 클릭하지 않고, 위 사진의 액티비티로 이동해야하는 문제이다. 코드를 확인해보니, jakhar.aseem.diva.action.VIEW_CREDS으로 이동되는 코드를 확인할 수 있었다. 해당 액션이 어떤 액티비티를 호출하는지를 알아내기 위해 AndroidManifest.xml에서 찾아보니, APICredsActivity를 호출하는 것을 확인하였다. adb의 am을 이용하여 해당 액티비티 호..
2022.11.29 -
문제풀이 목표: 웹 URL을 제외한 모든 민감한 정보에 액세스해 보십시오. 힌트: 입력을 사용하기 전에 필터링하거나 유효성을 검사하지 않으면 입력 유효성 검사 문제가 부적절하거나 전혀 발생하지 않습니다. 외부에서 입력을 받는 구성 요소를 개발할 때는 항상 유효성을 검사하십시오. URL을 입력 시에 웹뷰를 통해 웹 사이트가 출력이 되었다. 하지만, http가 아닌 file을 삽입함으로 디바이스 내 저장된 파일을 출력하도록 하겠다. file:///data/data/jakhar.aseem.diva/shared_prefs/jakhar.aseem.diva_preferences.xml을 입력하여 저장된 데이터를 출력하였다. 코드를 확인해보니, 입력 값을 검증 없이 그대로 사용하여 내부 파일이 출력이 되었다.
[Android] 08. 입력 유효성 검사 문제 - Part 2문제풀이 목표: 웹 URL을 제외한 모든 민감한 정보에 액세스해 보십시오. 힌트: 입력을 사용하기 전에 필터링하거나 유효성을 검사하지 않으면 입력 유효성 검사 문제가 부적절하거나 전혀 발생하지 않습니다. 외부에서 입력을 받는 구성 요소를 개발할 때는 항상 유효성을 검사하십시오. URL을 입력 시에 웹뷰를 통해 웹 사이트가 출력이 되었다. 하지만, http가 아닌 file을 삽입함으로 디바이스 내 저장된 파일을 출력하도록 하겠다. file:///data/data/jakhar.aseem.diva/shared_prefs/jakhar.aseem.diva_preferences.xml을 입력하여 저장된 데이터를 출력하였다. 코드를 확인해보니, 입력 값을 검증 없이 그대로 사용하여 내부 파일이 출력이 되었다.
2022.11.29 -
문제풀이 목표: 사용자 이름을 모른 채 모든 사용자 데이터에 액세스하려고 합니다. 기본적으로 세 명의 사용자가 있으며 귀하의 임무는 단일 악성 검색으로 세 명의 사용자 모두의 데이터를 출력하는 것입니다. 힌트: 입력을 사용하기 전에 필터링하거나 유효성을 검사하지 않으면 입력 유효성 검사 문제가 부적절하거나 전혀 발생하지 않습니다. 외부에서 입력을 받는 구성 요소를 개발할 때는 항상 유효성을 검사하십시오. 테스트를 쉽게 하기 위해 데이터베이스에 이미 세 명의 사용자가 있습니다. 예를 들어 그 중 한 명은 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