Season 1
-
문제풀이 목표: 이것은 개인 메모 응용 프로그램입니다. PIN을 한 번 생성하고 올바른 PIN을 입력한 후 메모에 액세스할 수 있습니다. 이제 PIN을 모른 채 앱 외부에서 개인 메모에 액세스해 보세요. 힌트: 앱의 구성 요소가 적절하게 보호되지 않은 경우 다른 앱이나 사용자가 액세스할 수 있으며 일부는 외부 입력을 허용할 수도 있습니다. 활동, 서비스, 콘텐츠 제공자와 같은 구성 요소는 이러한 경향이 있습니다. 위 사진과 같이 ①에서 비밀번호를 설정하여, 노트에 접근을 한다. ③처럼 접근 시 설정한 비밀번호으로 인증하여 노트를 볼 수 있다. 위와 같이 틀린 비밀번호를 입력 시 거부되는 것을 확인할 수 있다. 해당 문제는 비밀번호를 모르는 상태에서 인증을 우회하여 개인 노트의 데이터에 접근하는 것이 목표..
[Android] 11. 접근 제어 이슈 - Part 3문제풀이 목표: 이것은 개인 메모 응용 프로그램입니다. PIN을 한 번 생성하고 올바른 PIN을 입력한 후 메모에 액세스할 수 있습니다. 이제 PIN을 모른 채 앱 외부에서 개인 메모에 액세스해 보세요. 힌트: 앱의 구성 요소가 적절하게 보호되지 않은 경우 다른 앱이나 사용자가 액세스할 수 있으며 일부는 외부 입력을 허용할 수도 있습니다. 활동, 서비스, 콘텐츠 제공자와 같은 구성 요소는 이러한 경향이 있습니다. 위 사진과 같이 ①에서 비밀번호를 설정하여, 노트에 접근을 한다. ③처럼 접근 시 설정한 비밀번호으로 인증하여 노트를 볼 수 있다. 위와 같이 틀린 비밀번호를 입력 시 거부되는 것을 확인할 수 있다. 해당 문제는 비밀번호를 모르는 상태에서 인증을 우회하여 개인 노트의 데이터에 접근하는 것이 목표..
2022.11.29 -
문제풀이 목표: 타사 앱에 액세스할 수 있습니다. Teeter에 등록한 TVEETER API 자격 증명. 앱에서 온라인 등록을 요청하고 공급업체에서 앱에 등록하는 데 사용할 수 있는 핀을 제공합니다. 이제 PIN을 모른 채 앱 외부에서 API 자격 증명에 액세스해 보십시오. 이것은 비즈니스 논리 문제이므로 코드를 확인해야 할 수도 있습니다. 힌트: 앱의 구성 요소가 적절하게 보호되지 않은 경우 다른 앱이나 사용자가 액세스할 수 있으며 일부는 외부 입력을 허용할 수도 있습니다. 활동, 서비스, 콘텐츠 제공자와 같은 구성 요소는 이러한 경향이 있습니다. 해당 문제는 "Register Now." 체크박스에 체크 후 "VIEW TVEETER API CREDENTIALS" 버튼을 클릭하여 요청 시 출력되는 PIN..
[Android] 10. 접근 제어 이슈 - Part 2문제풀이 목표: 타사 앱에 액세스할 수 있습니다. Teeter에 등록한 TVEETER API 자격 증명. 앱에서 온라인 등록을 요청하고 공급업체에서 앱에 등록하는 데 사용할 수 있는 핀을 제공합니다. 이제 PIN을 모른 채 앱 외부에서 API 자격 증명에 액세스해 보십시오. 이것은 비즈니스 논리 문제이므로 코드를 확인해야 할 수도 있습니다. 힌트: 앱의 구성 요소가 적절하게 보호되지 않은 경우 다른 앱이나 사용자가 액세스할 수 있으며 일부는 외부 입력을 허용할 수도 있습니다. 활동, 서비스, 콘텐츠 제공자와 같은 구성 요소는 이러한 경향이 있습니다. 해당 문제는 "Register Now." 체크박스에 체크 후 "VIEW TVEETER API CREDENTIALS" 버튼을 클릭하여 요청 시 출력되는 PIN..
2022.11.29 -
문제풀이 목표: 버튼을 클릭하면 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