Android/Diva

    Hardcoding Issues(Part 2) - Level 12

    앱 정보 하드 코딩된 정보를 찾아 입력하면 해결할 수 있는 문제 기본 화면은 다음 [그림 1]과 같이 vendor key를 입력할 수 있는 부분과 ACCESS 버튼으로 구성되어있다. 아무 값이나 입력한 후 ACCESS를 눌러보면 다음과 같은 메시지를 확인할 수 있다. 앱 분석 Hardcode2Activity private DivaJni djni; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView((int) R.layout.activity_hardcode2); this.djni = new DivaJni(); } public void access(View view) { if (t..

    Access Control Issues(Part 3) - Level 11

    앱 정보 level11은 비밀 노트 애플리케이션으로 4자리 숫자의 PIN 코드를 설정한 후 노트를 확인할 때 설정한 코드를 인증하여 비밀 노트를 확인할 수 있는 애플리케이션이다. 기본 화면은 다음과 같으며, 4자리 PIN 코드를 입력할 수 있는 칸과 PIN 코드 입력 후 생성/변경할 수 있는 버튼 그리고 비밀 노트로 이동하는 버튼으로 구성되어 있다. 비밀 노트로 이동하기 이전에 PIN 코드 입력 후 생성/변경 버튼을 눌러준다. 이동하면 PIN 코드를 입력할 수 있는 칸과 비밀 노트에 접속하는 버튼으로 구성되어 있으며, 이전에 설정한 코드를 입력한 후 버튼을 눌러 노트에 접속해준다. 이동하면 다음과 같은 정보를 확인할 수 있다. 앱 분석 addPin() public void addPin(View view)..

    Insecure Logging - Level 1

    정보 level 1은 신용카드 번호를 입력 후 체크 아웃하는 기능을 가졌으며, 신용카드 번호와 같은 민감한 정보가 로그에 남는 것을 확인하는 단계이다. 기본 화면은 다음 [그림 1]과 같이 신용 카드 번호를 입력할 수 있는 부분과 CHECK OUT이라는 버튼 하나로 구성되어 있다. 이때 신용카드 번호 입력 후 CHECK OUT 버튼을 누르면 "An error occured. Please try again later"라는 문자열이 출력되는 것을 확인할 수 있다. 분석 checkout public void checkout(View view) { EditText cctxt = (EditText) findViewById(R.id.ccText); try { processCC(cctxt.getText().toStr..