문제풀이

목표: 타사 앱에 액세스할 수 있습니다.

Teeter에 등록한 TVEETER API 자격 증명. 앱에서 온라인 등록을 요청하고 공급업체에서 앱에 등록하는 데 사용할 수 있는 핀을 제공합니다. 이제 PIN을 모른 채 앱 외부에서 API 자격 증명에 액세스해 보십시오. 이것은 비즈니스 논리 문제이므로 코드를 확인해야 할 수도 있습니다.

힌트: 앱의 구성 요소가 적절하게 보호되지 않은 경우 다른 앱이나 사용자가 액세스할 수 있으며 일부는 외부 입력을 허용할 수도 있습니다. 활동, 서비스, 콘텐츠 제공자와 같은 구성 요소는 이러한 경향이 있습니다.

 


 

해당 문제는 "Register Now." 체크박스에 체크 후  "VIEW TVEETER API CREDENTIALS" 버튼을 클릭하여 요청 시 출력되는 PIN 인증을 우회하여 API KEY 액티비티를 강제 호출하는 문제이다.

 

해당 문제를 풀기 위해, 코드를 분석한 결과

API KEY의 액티비티를 호출하기 위해선 chk_pin의 값이 False이면 출력할 수 있다는 것을 알 수 있었다.

 

일단 chk_pin 값을 설정하지 않고, API KEY 액티비티를 강제 호출 시 PIN 인증 액티비티로 이동되는 것을 확인 할 수 있었다.

 

adb am의 --ez 옵션을 통해 check_pin을 false로 설정하여 API KEY 액티비티를 강제 호출 할 수 있었다.

여기서 chk_pin이였는데, check_pin으로 설정한 이유는 chk_pin 변수는 values/strings.xml에 check_pin으로 지정되어 있기 때문이다.

 

실제 이름은 check_pin이기 때문에 --ez 옵션에 삽입하였다.

 

복사했습니다!