━━━━ ◇ ━━━━
해킹/SuNiNaTaS 모의해킹

21. 써니나타스 (Suninatas) 21번 문제풀이 Write-up

728x90
반응형

써니나타스 모의해킹 사이트

https://suninatas.com/challenges

 

써니나타스

웹해킹, 포렌식, 리버싱, 암호학, 해킹 워게임 제공.

www.suninatas.com


솔루션키를 알아내는 문젠데, 자로 가려둔 부분 때문에 전체의 솔루션 키가 보이지 않는다. 

개발자도구를 봐도 큰 힌트는 없었다. 

일단 이미지를 다운로드하였다. 

 

 

다운로드한 이미지를 확인해 봤는데 속성을 봐도 딱히 이렇다 할 부분은 발견하지 못했다. 

그런데 한 가지 이상한 점은 2012년에 촬영한 사진인 것치곤 용량이 큰 거 아닌가 하는 생각이 들었다. 심지어 .jpg 파일인데. 일단 이미지를 뜯어봐야겠다. 

 

 

 

그전에 jpeg, jpg 헤더구조를 알고 가면 이 문제를 풀기는 더욱 쉬워진다. 

JPG란?
JPEG(Joint PhotoGraphic Experts Group)은 손실 압축 기법을 사용한다. 불필요한 pixel들을 제거해서 좋은 화질을 유지함에 따라 큰 압축 효과를 얻지만, 원본과 비교했을 때는 차이를 보인다. JPEG 파일은 JFIF(JPEG File Interchange Format)로 저장되고, 확장자는 JPG 혹은 JPEG를 사용한다. 

파란색으로 표시된 세그먼트들이 전체적인 틀을 잡는 세그먼트들이다.

JPEG 헤더구조 ( + jpeg markers)
SOI FF D8 (고정) Start of Image
JFIF-APP0 FF E0 s1 s2 4A 46 49 46 00 ... JFIF APPO Marker 블럭
JFXX-APP0 FF E0 s1 s2 4A 46 49 46 00 ... (선택) JFIF extiention APP0 marker 블럭
DQT FF DB Define Qunatunization Table
SOf0 FF C0 Start of DCT Frame 0
DHT FF C4 Define Huffman Table
SOS FF DA (고정) Start of Scan
압축 이미지 데이터
EOI FF D9 (고정) End of Image

먼저 HxD로 이미지 파일을 열어봤다. 역시 헤더 시작은 FF D8로 하는 것이 보였다. 

 

 

 

검색을 통해서 각각의 세그먼트들을 찾아봤다. 

482 - FF DB 

549 - FF C0

550 - FF C4

700 - FF DA

2958 - FF D9 (End of Image) 

 

0에서 시작해서 각 세그먼트들을 거쳐서 End of Image까지가 2958번이었다. 

 

 

 

그런데 FF D9 검색 결과를 보면 16개의 검색결과가 나온 것을 볼 수 있다. 

2958의 FF D9가 가장 첫 번째 이미지의 끝인 것이다. 즉 우리가 가지고 있는 이미지 파일이 이미지 하나가 아니라 여러 개라는 것을 추측해 볼 수 있다. 

 

 

 


WinHex

이번엔 WinHex라는 툴을 이용해서 시그니처 기반 파일 카빙(File Carving)을 시도해야 한다. 

파일 카빙이란 파일의 바이너리 데이터를 활용해서 파일을 복구하는 것을 말한다. 

시그니처 기반 파일 카빙은 파일의 포맷 별로 헤더(header)시그니처와 푸터(footer)시그니처가 파일에 존재할 시, 그 고유의 특성으로 복구를 하는 것이다. 

 

헤더와 푸터 시그니처를 갖는 포맷

Format Signature
Header Footer
JPEG FF D8 FF D9
PNG 89 50 4E 47 0D 0A 1A 0A 49 45 4E 44 AE 42 60 82
GIF 47 49 46 38 37 61 (GIF87a) 00 3B
47 49 46 38 37 61 (GIF89a)
PDF 25 50 44 46 2D 31 2E (PDF-1.) 25 25 45 4F 46 (%%EOF)
HTML <HTML> or <html> </HTML> or </html>
<!DOCTYPE HTML> or <!doctype html>

 

File recovery by type을 누르면 이런 창이 뜬다. 

Pictures 체크를 한 상태에서 Output path(저장경로)를 지정해 주고 하단 선택란에서 Complete byte-level search를 눌러준 뒤 OK를 눌러 실행한다. 

 

 

 

 

이미지 복구가 완료되면서 이미지 안에 숨겨져 있던 다른 파일들을 모두 볼 수 있었다. 

 

 

 

 

이렇게 솔루션 키를 획득했고 바로 써니나타스 AUTH게시판에 인증을 하러 갔다. 

 

 

 

문제 21번

 

성공

728x90
반응형
COMMENT