xcz.kr 13번 문제풀이
Title
Network Recovery!
Description
Key Format = lowercase(md5("key"))
Download Here
▣ 문제 개요
문제를 보면 네트워크 복구 라는 타이틀이 주어져있고 키포맷을 살펴보면 키값을 구한 뒤 md5로 인코딩을 진행한 후 소문자로 바꿔주면 문제가 해결될 것으로 추측된다.
[그림 1-1]
문제를 다운받으면 network_recover 파일이 생성되고 확장자가 명시되어있지않으니 winhex로 열어보자.
[그림 1-2]
Dumpcap은 와이어샤크 패킷파일(pcap)이다. 해당 파일을 wireshark로 열어보니 약 1000개쯤 패킷파일을 확인할 수 있다.
[그림 1-3]
패킷을 살펴보는중 문제와 연관되있을거라 생각되는 패킷을 하나 발견하였다. 상세하게 확인해보기 위해 Fllow기능을 이용해 열어보자.
[그림 1-4]
열어보면 Secret page 타이틀을 가지고 링크가 걸려있는 것을 확인할 수 있다. body 태그부분에 3개의 링크가 걸려있다. 링크에 걸려있는 treasure1,2,3번의 파일을 찾아보자.
[그림 1-5]
protocol로 정렬하여 HTTP파일만 찾아보던중 [그림1-4]에서 확인한 링크파일 3개를 발견하였다. 해당 패킷 파일을 확인해보자.
[그림 1-6]
패킷을 열어보면 PNG확장자를 가진 이미지파일이다. winhex로 시그니처를 확인해보기 위해 파일을 추출해보자.
(FILE > export objects > HTTP)로 파일을 export시켜줄 경로를 지정해주면 된다.
[그림 1-7] export 기능
[그림 1-8]
3개의 파일을 모두 export시켰다. winhex로 파일을 확인해보자.
[그림 1-9] treasure1
[그림 1-10] treasure2
[그림 1-11] treasure3
treasure1 |
PNG 헤더 시그니처를 확인 가능 |
treasure2 |
offset값에 00이 들어가있다. |
treasure3 |
PNG 푸터 시그니처를 확인가능 |
[표 1-1]
위 표를 보면 각각의 파일이 가지고있는 시그니처가 다른것으로 보아 3개의 파일을 나눠서 저장된 것으로 추측된다. 이미지 확인을 위해 3개의 파일을 다시 하나의 파일로 만들어줘서 확인해보자.
[그림 1-12]
바이너리 파일을 합치는 방법은 여러가지가 있는데 그중에 윈도우 CMD에서 copy /B옵션을 사용하여 파일을 합쳐보았다.
[그림 1-13]
treasure.png 파일이 생성되었고 확인해보니 키값으로 보이는 문자열이 적혀있다.
[그림 1-14]
키포맷을 보면 키값을 md5로 인코딩한후 소문자로 변환해주라는 조건이 제시되어있다. python을 이용해 png파일에서 확인한 문자열을 조건에 맞게 변환시켜보았다.
[그림 1-15]
해당 키값을 인증해준결과 문제가 해결되었다.