키오스크 검증 우회 - [키오스크 취약점 분석 프로젝트]
DB 우회
해당 키오스크에서 키오스크 동작을 위한 프로그램을 실행하면 DB에 대한 연결을 검증을 시도한다. 연결 시도에 실패하면 키오스크 프로그램이 종료가 되기 때문에 분석하기에 앞서 DB 연결 검증을 우회해야 한다.
DataBase 연결 검증 로직
Database.Ping()
에서 반환된 값이true
이면 키오스크 프로그램이 종료되지 않고 실행될 수 있다.
Ping()
은 데이터베이스와 연결을 확인하는 부분이다.- 데이터베이스와 연결이 성공했을 때
true
를result
변수에 저장하고 실패했을 때false
를 저장한다.
원본코드
우회 코드
주방 프린터 우회
DB 연결 부분을 잘 우회했으나 이후에 주방 프린터 기기와 연결이 되어 있는지 확인하는 로직으로 인해 프로그램이 종료되는 현상이 발생했다. DB 우회와 마찬가지로 현재 주방 프린터 기기를 소지하고 있지 않았기 때문에 이 부분도 우회해야 했다.
주방 프린터 연결 검증 로직
- 아래의
CheckToNext()
부분은 주방프린터 연결을 확인하는 부분이다. CheckToNext()
함수에서result
부분을 true로 바꾸면 우회가 가능하다.
원본 코드
우회코드
KIOSK 프로그램 실행 화면
This post is licensed under CC BY 4.0 by the author.