2021 고등학생 사이버 보안 경진대회(MISC - Image Challenge)
Capture The Flag/CTF 제작

2021 고등학생 사이버 보안 경진대회(MISC - Image Challenge)

문제 소개

 

2021 고등학생 사이버 보안 경진대회에 출제했던 Image Challenge 문제 제작에 대해 포스팅해보겠습니다.

 

문제 이름 : Image Challenge

문제 기술 : 그림 파일을 분석하고 플래그를 획득하라. ADCTF{FLAG}

문제 분야 : MISC

문제 의도

  1. 바코드 데이터를 분석할 수 있는가?
  2. jpg 파일의 GPS 데이터를 분석할 수 있는가?
  3. 파일 카빙 기술을 사용할 수 있는가?

 


문제 설계

 

이번 문제는 그림 파일을 분석해서 해결할 수 있도록 설계를 했습니다.

총 3가지 단계를 구성하여 각각 다른 컨셉의 문제를 풀도록 유도했습니다.

 

문제 파일

 

위와 같은 방식으로 문제 파일의 압축을 풀면 압축 파일 3개가 나오는 방식으로 만들었고 1번 문제를 제외한 2번, 3번 파일은 비밀번호를 걸어서 이전 단계를 해결해야 열 수 있도록 만들었습니다.

 

1. First Challenge

 

First Challenge 문제는 간단하게 바코드를 해독하는 문제였습니다.

https://www.terryburton.co.uk/barcodewriter/generator/

 

Online Barcode Generator

The world's most capable barcode generator. Easily create any barcode in EPS, PNG or JPEG format.

www.terryburton.co.uk

위 사이트에서 2번 압축파일의 비밀번호를 한 글자씩 잘라서 각각 바코드 그림으로 생성을 한 것입니다.

해당 챌린지는 다음과 같이 바코드를 해독해주는 사이트를 찾으면 금방 해결할 수 있는 문제였습니다.

https://www.onlinebarcodereader.com/

 

Barcode Reader

Welcome With this free online tool you can decode various barcode formats. We support the following barcode symbologies: 1D Point of sale: UPC-A, UPC-E, EAN-8, EAN-13, GS1 DataBar (a.k.a. RSS) 1D Industrial Symbols: Code 39, Code 93, Code 128, GS1-128, Cod

www.onlinebarcodereader.com

 


 

Second Challenge

 

First Challenge를 풀고 얻은 비밀번호로 Second Challenge 파일을 압축해제할 수 있습니다.

Second Challenge 파일에는 내부에 4개의 폴더로 구분해두었습니다.

 

2-1

 

2-2

 

폴더 내부에는 위와 같이 jpg 파일들을 쭈욱 넣어두었습니다.

 

2-1\1.jpg

 

각각의 파일들에는 GPS 데이터를 삽입해두었습니다. 원래 EXIF 파일이 아니라 GPS 데이터가 없었지만 툴을 사용하여 고의로 데이터를 삽입했습니다.

 

https://exiftool.org/

 

ExifTool by Phil Harvey

0 (Information Type) AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP3, APP4, APP5, APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font, FotoStat

exiftool.org

위 경로에서 다운로드 할 수 있는 exiftool을 사용하여 그림 파일에 GPS를 삽입할 수 있습니다.

'.\exiftool(-k).exe' -GPSLatitudeRef=N -GPSLatitude="37.550987" -GPSLongitudeRef=E -GPSLongitude="126.990905" .\1.jpg

GPS 데이터를 삽입하는 명령어는 위와 같습니다.

 

GPS 좌표를 연결한 그림

 

각 폴더 별로 가지고 있는 그림 파일들의 GPS 좌표를 찍고 연결해보면 위와 같이 글자가 나오도록 유도했습니다.

위와 같은 방식으로 총 4개의 폴더에 대해 수행하도록 하여 4자리 패스워드를 얻도록 만들었고 이는 3번째 압축파일의 비밀번호입니다.

위와 같이 GPS 좌표를 연결할 수 있는 프로그램은 다음 링크에서 다운로드 할 수 있습니다.

http://www.gpsnote.net/

 

GpsNote.NET

이 사이트는 인터넷 익스플로러 8.0 미만은 지원하지 않습니다. 8.0 이상으로 업그레이드 하시거나 파이어폭스, 구글 크롬 등의 다른 웹브라우저로 접속하시기 바랍니다. *Latest Version is 4.1.0 GPS ROU

www.gpsnote.net


 

Last Challenge는 파일 카빙 기술을 사용하도록 의도했습니다.

 

flag.png

 

flag.png 파일을 제공해줬으며 flag.png 파일의 데이터 뒤에 아래와 같이 진짜 플래그 파일인 jpg 데이터를 숨겨뒀습니다.

 

 

해당 jpg 파일을 카빙하면 최종 플래그를 얻을 수 있습니다.

 


Image Challenge 문제 제작은 여기까지입니다.

다양한 바코드 해독, GPS 데이터 분석, 파일 카빙 이렇게 3가지 유형의 문제를 해결하도록 유도한 문제였습니다.

대회 당일 날 이 문제를 풀었던 팀들이 몇 안되는데, 많은 팀들이 2단계에서 아마 막혔을 것이라고 추측이 됩니다.

일반적으로 동물그림과 같은 jpg 파일에 GPS 값이 있을 것이라고 떠올리기가 어려울 수 있다고 생각이 드네요.

이번 문제 설계에 핵심적인 트릭이 아니었나 싶습니다.