물먹는산세베리아

[ctf-d] 파일에서 플래그를 찾아라. 본문

Waregame & CTF/Forensic

[ctf-d] 파일에서 플래그를 찾아라.

suntall 2022. 2. 25. 03:07
문제

풀이

FD 37 7A 58 5A 00XZ 파일의 헤더 시그니처이고, 59 5A는 XZ 파일의 푸터 시그니처이다.

 

XZ파일임을 알아냈기 때문에 확장자로 XZ을 붙여준다.

XZ 압축 파일로 만든 후 7zip으로 압축을 풀었는데, 폴더에 들어가보면 파일이 하나 들어 있다.

 HxD로 열었더니 이번에는 7Z의 헤더 시그니처가 보였다. 

이 파일도 좀 전과 마찬가지로 .7z를 확장자로 추가해준다.

 

이걸 하나하나 다 열기는 힘들 것 같고  그나마 016.7z만 크기가 다른데 마지막 파일이라서 다른 거일 수도 있다. 

보통 뭐 하나 크기가 다르면 그거만 파보면 될텐데 7zip으로 열었을 때 압축 전 크기만 나오고, 16을 제외하고는 모두 똑같았다.

마지막 파일이 크기가 다른 거라 뭔가 이게 아닐 거 같아서 그냥 검색을 해봤다.

 

다들 반디집으로 열길래 나도 반디집으로 압축을 풀어봤더니 오 13번 파일 압축 크기가 다르다. 

13번 파일만 압축을 풀어보자

이번에는 9번 파일만 압축크기가 다르다. 9번만 풀어보자

끝이 있긴 하겠지 7번 파일 ㄱㄱ

8번 파일 ㄱㄱ

마지막으로 bomb_08 파일을 열어보자

크기가 4G니까 비어있는 건 아닌데 전부 0이라 HxD로 열었을 때 얻을 수 있는 건 없..다 ㅠㅠㅠ

전에 다운 받아 뒀던 strings.exe로 텍스트를 추출했다.

 

어떤 원리로 이렇게 나오는지 알아볼 필요가 있어 보인다. 

 

[ zip bomb ]

이번 문제는 zip안에 계속 zip 파일이 들어있는 zip bomb 형식의 문제였다. (최종 파일 이름에도 나와있음)

겉보기에는 평범한 zip 파일이지만 바이러스 검사 시 파일의 압축을 시도할 경우 엄청난 양의 하드디스크 용량과 메모리 용량이 필요하다.  이번 문제에 들어있던 각각의 파일들도 4GB라서 전체 다 풀었으면 용량이 남아나지 않을 뻔했다.

 

정답