[xcz.kr] Prob13 13번 문제 풀이
이번 문제는 설명으로만 봐서는 무슨 문제인지 알기 힘들어
우선 파일을 받아보도록 하겠다.
이런 파일이 나왔고, 우선 무슨 파일인지 모르기 때문에 HxD로 열어보도록 하겠다.
무슨 파일인지 아직 잘 모르겠어서 0A 0D 0D 0A 시그니처를 가진 파일에 대해 검색해보도록 하겠다.
검색 결과, pcap-ng파일 이라는 것을 알 수 있었고, 해당 파일의 확장자를 pcap-ng로 바꿔서 와이어샤크로 열어보도록 하겠다.
잘 열린 것을 볼 수 있고, 쭉 내리다보면 98번 패킷에서 index.html을 GET하는 것을 볼 수 있다.
index.html의 TCP 스트림을 보면 treasure1~3까지 링크가 되어있는 것을 볼 수 있고,
패킷을 좀 더 살펴보도록 하겠다.
114번 패킷에서 treasure1을 GET하는 것을 볼 수 있었고, 똑같이 TCP스트림을 보도록 하겠다.
아래의 PNG파일을 다운로드 받은 것으로 보이고, 직접 확인해보는게 좋다고 생각되어 파일을 추출해보도록 하겠다.
모두 저장해서 파일을 보도록 하겠다.
우선 index.html을 열어보도록 하겠다.
여기서 treasure1을 누르면 흰 사진파일이 나오고, 2와 3을 누르면 그냥 파일이 다운로드된다.
세 개의 파일을 모두 HxD로 열어보도록 하겠다.
1번 파일을 보면 89 50 4E 47의 시그니처를 가진 PNG파일인 것을 알 수 있었고,
PNG파일이라면 끝에 IEND를 가지는 것을 저번 문제를 통해 확인했었다.
온전한 사진파일을 만들기위해( IEND까지 ) 검색해보도록 하겠다.
해당파일에서 IEND를 찾을 수 없었고, 파일이 잘린 것이라는 생각이 들었다.
2번 파일을 열어보도록 하겠다.
별 내용이 없고, 혹시나 하는 마음에 IEND를 검색했지만 결과가 나오지 않았다.
3번 파일을 열어보도록 하겠다.
3번 파일도 2번과 다르지 않은 것 같았지만, IEND를 검색해서 PNG파일의 끝을 나타내는 것을 알았고,
1,2,3번 파일을 합쳐 온전한 PNG파일을 만드는 것이라는 생각을 했다.
바로 합쳐보도록 하겠다.
새로운 파일을 만들어 1~3을 합치고, 3의 마지막 IEND 까지만 두고, 파일을 PNG로 저장 후 파일을 열도록 하겠다.
합친 PNG파일에서 키값을 찾을 수 있었고,
Key Format = lowercase(md5("Key")) 라는 설명을 적용해보도록 하겠다.
위의 값이 키라고 생각하고 md5를 진행하면
아래의 값이 나오고, 해당 값을 소문자로 바꿔야 하지만 소문자로 이미 바뀌었기 때문에 그대로 인증하면
클리어가 된다.