문제 소개
2021 고등학생 사이버 보안 경진대회에 출제했던 Image Challenge 문제 제작에 대해 포스팅해보겠습니다.
문제 이름 : Image Challenge
문제 기술 : 그림 파일을 분석하고 플래그를 획득하라. ADCTF{FLAG}
문제 분야 : MISC
문제 의도
- 바코드 데이터를 분석할 수 있는가?
- jpg 파일의 GPS 데이터를 분석할 수 있는가?
- 파일 카빙 기술을 사용할 수 있는가?
문제 설계
이번 문제는 그림 파일을 분석해서 해결할 수 있도록 설계를 했습니다.
총 3가지 단계를 구성하여 각각 다른 컨셉의 문제를 풀도록 유도했습니다.
위와 같은 방식으로 문제 파일의 압축을 풀면 압축 파일 3개가 나오는 방식으로 만들었고 1번 문제를 제외한 2번, 3번 파일은 비밀번호를 걸어서 이전 단계를 해결해야 열 수 있도록 만들었습니다.
First Challenge 문제는 간단하게 바코드를 해독하는 문제였습니다.
https://www.terryburton.co.uk/barcodewriter/generator/
위 사이트에서 2번 압축파일의 비밀번호를 한 글자씩 잘라서 각각 바코드 그림으로 생성을 한 것입니다.
해당 챌린지는 다음과 같이 바코드를 해독해주는 사이트를 찾으면 금방 해결할 수 있는 문제였습니다.
https://www.onlinebarcodereader.com/
First Challenge를 풀고 얻은 비밀번호로 Second Challenge 파일을 압축해제할 수 있습니다.
Second Challenge 파일에는 내부에 4개의 폴더로 구분해두었습니다.
폴더 내부에는 위와 같이 jpg 파일들을 쭈욱 넣어두었습니다.
각각의 파일들에는 GPS 데이터를 삽입해두었습니다. 원래 EXIF 파일이 아니라 GPS 데이터가 없었지만 툴을 사용하여 고의로 데이터를 삽입했습니다.
위 경로에서 다운로드 할 수 있는 exiftool을 사용하여 그림 파일에 GPS를 삽입할 수 있습니다.
'.\exiftool(-k).exe' -GPSLatitudeRef=N -GPSLatitude="37.550987" -GPSLongitudeRef=E -GPSLongitude="126.990905" .\1.jpg
GPS 데이터를 삽입하는 명령어는 위와 같습니다.
각 폴더 별로 가지고 있는 그림 파일들의 GPS 좌표를 찍고 연결해보면 위와 같이 글자가 나오도록 유도했습니다.
위와 같은 방식으로 총 4개의 폴더에 대해 수행하도록 하여 4자리 패스워드를 얻도록 만들었고 이는 3번째 압축파일의 비밀번호입니다.
위와 같이 GPS 좌표를 연결할 수 있는 프로그램은 다음 링크에서 다운로드 할 수 있습니다.
Last Challenge는 파일 카빙 기술을 사용하도록 의도했습니다.
flag.png 파일을 제공해줬으며 flag.png 파일의 데이터 뒤에 아래와 같이 진짜 플래그 파일인 jpg 데이터를 숨겨뒀습니다.
해당 jpg 파일을 카빙하면 최종 플래그를 얻을 수 있습니다.
Image Challenge 문제 제작은 여기까지입니다.
다양한 바코드 해독, GPS 데이터 분석, 파일 카빙 이렇게 3가지 유형의 문제를 해결하도록 유도한 문제였습니다.
대회 당일 날 이 문제를 풀었던 팀들이 몇 안되는데, 많은 팀들이 2단계에서 아마 막혔을 것이라고 추측이 됩니다.
일반적으로 동물그림과 같은 jpg 파일에 GPS 값이 있을 것이라고 떠올리기가 어려울 수 있다고 생각이 드네요.
이번 문제 설계에 핵심적인 트릭이 아니었나 싶습니다.
'Capture The Flag > CTF 제작' 카테고리의 다른 글
2021 고등학생 사이버 보안 경진대회(Digital forensic - PartitionMan) (7) | 2021.09.11 |
---|---|
2021 고등학생 사이버 보안 경진대회(Digital forensic - Tell me your wish) (0) | 2021.09.11 |
오디오 스테가노그래피 문제 제작 (8) | 2021.08.01 |