[안드로이드 APK 진단] DIVA - 12.하드코딩 이슈 파트 2
·
Android_Vuln
12번 문제를 클릭하면 하드 코딩 된 정보를 찾으라고 한다. 일단 대충 게싱으로 때려 박으면 당연히 액세스 거부 오류가 발생한다. JEB로 디컴파일을 해보면 문제에 해당 되는 클래스 코드가 다음과 같다.사용자가 입력한 값을 DivaJni의 access 함수 파라미터로 사용하여 비교 후 분기가 나타난다. DivaJni 코드를 보면 위 사진과 같은데 divajni 라는 라이브러리를 로딩한다. jeb 프로젝트 탐색기의 라이브러리 폴더에서 해당 라이브러리를 검색 후 추출한다. 추출 된 라이브러리에서 문자열을 뽑아내면 그냥 딱 봐도 뭔가 수상한 문자열이 2개 보이는데 우선 첫 번째 문자열을 이용하여 액세스를 시도한다. 액세스 성공
[안드로이드 APK 진단] DIVA - 11.접근 제어 부재 파트 3
·
Android_Vuln
11번째 문제, "ACCESS CONTROL ISSUES - PART3"을 클릭한다. 목표를 보면 PIN을 설정하고 해당 PIN을 이용해야만 개인 노트에 접근할 수 있는데, 우리는 PIN을 알 지 못하는 상태에서 개인 노트에 접근을 해야 한다. 일단 임의의 PIN 코드를 생성하면 위 사진과 같이 성공 메시지가 나타난다. 개인 노트 내용을 알아보기 위해 "GO TO PRIVATE NOTES"를 클릭한다. 이전에 생성한 PIN을 입력한다. 개인 노트 내용은 위 사진과 같다. Manifest.xml 파일을 보면 위 사진과 같이 provider가 exported=true 상태임을 볼 수 있다. 따라서 우리는 provider의 정확한 경로만 알면 앱을 실행하지 않고 해당 내용을 볼 수 있다. diva apk를 a..
[안드로이드 APK 진단] DIVA - 10.접근 제어 부재 파트 2
·
Android_Vuln
10번 문제, "10. ACCESS CONTROL ISSUES - PART 2"를 클릭한다. 목표를 보면 Tveeter에 등록을 하고 나면 TVEETER API 자격 증명을 얻을 수 있다고 한다. 이 앱은 온라인 등록을 해야 하는데, 벤더가 핀 코드를 주면 해당 핀 코드를 이용해서 등록해야 한다.우리의 목표는 핀 코드를 모르는 상태에서 앱 바깥에서 API 자격 증명을 얻는 것으로, 비즈니즈 로직 문제이기 때문에 코드를 봐야한다고 한다. Register Now를 선택하고 VIEW TVEETER API CREDENTIALS 버튼을 클릭한다. 등록을 시도하면 핀 코드를 입력하라고 한다. 임의의 핀 코드를 입력하면 잘못된 코드라는 메시지가 나타난다. Already Registered를 선택하고 API 자격 증명..