Post

키오스크 검증 우회 - [키오스크 취약점 분석 프로젝트]

DB 우회

해당 키오스크에서 키오스크 동작을 위한 프로그램을 실행하면 DB에 대한 연결을 검증을 시도한다. 연결 시도에 실패하면 키오스크 프로그램이 종료가 되기 때문에 분석하기에 앞서 DB 연결 검증을 우회해야 한다.

DataBase 연결 검증 로직

  • Database.Ping() 에서 반환된 값이 true 이면 키오스크 프로그램이 종료되지 않고 실행될 수 있다.

Untitled

  • Ping() 은 데이터베이스와 연결을 확인하는 부분이다.
  • 데이터베이스와 연결이 성공했을 때 trueresult 변수에 저장하고 실패했을 때 false 를 저장한다.

원본코드

원본코드

우회 코드

우회 코드

주방 프린터 우회

DB 연결 부분을 잘 우회했으나 이후에 주방 프린터 기기와 연결이 되어 있는지 확인하는 로직으로 인해 프로그램이 종료되는 현상이 발생했다. DB 우회와 마찬가지로 현재 주방 프린터 기기를 소지하고 있지 않았기 때문에 이 부분도 우회해야 했다.

주방 프린터 연결 검증 로직

  • 아래의 CheckToNext() 부분은 주방프린터 연결을 확인하는 부분이다.
  • CheckToNext() 함수에서 result 부분을 true로 바꾸면 우회가 가능하다.

원본 코드

원본 코드

우회코드

우회코드

KIOSK 프로그램 실행 화면

KakaoTalk_20210929_183710866.jpg

This post is licensed under CC BY 4.0 by the author.