2022/Write-Ups

[ctf-d] 누군가 부정행위를 했다는...

laluz 2022. 8. 2. 18:04

1팀 김나연

 

 

zip 파일을 열어보자.

압축해제를 하려고 하니까 용량이 부족하고

압축 알고리즘이 이상하다는 문구가 나왔다. 

복구를 클릭하니 아래 파일들이 나온다. 

 

다 확장자가 없는 파일들이다.

 

모든 게 망가졌다고 했으니 혹시 수정할 게 있는지 hxd로 열어봤다. 

 

50 4B 03 04 

ZIP 파일의 헤더 시그니처가 맞다. 

50 4B 05 06

Zip 파일의 푸터 시그니처다. 

 

압축파일을 풀 수도 없고...

hxd로 ZIP파일 구조를 분석해야 하나 싶었다

 

ZIP파일 구조를 분석해보자

 

ZIP 파일 구조

 

End of Central Directory 정보
Singature "0x06054B50"
Disk Number 0
Disk # w/cd 0
Disk entries 13(0D)
Total entries 13(0D)
Central directory size 1040(04 10)
Offset of cd wrt to starting disk 5618(15 F2)
Comment len 0
ZIP file Comment NULL

CD Offset의 시작은 15 F2이다. 

이 부분으로 가보자. 

 

Central Directory File header의

Signature값인 0x504B0102가 있다.

 

여기서부터 Central Directory File header의 시작임을 알 수 있다.

Central Directory File header offset 위치별로 나누어보았다. 

Central Directory File header 정보
Singature "0x02014B50"
Version 0C 2D
Vers.needed 00 9A
Flags 0
Compression 00 A9
Mod time 30 22
Mod date 01 41
Crc-32 66 6C 61 67
Compressed size FF FF FF FF
Central Directory File header 정보
Uncompressed size FF FF FF FF
File name len 00 0E
Extra field len 00 14
File comm.len 0
Disk #start 0
Internal attr. 0
External attr. 01 80
Offset of local header 0
File name (variable)  
Central Directory File header 정보
Extra field(variable)  
File comment(variable)  

offset of local heade까지는 고정적인 데이터

 

그런데 signature값 뒤부터 version 정보들을 hex값으로 찾아봤을 때 일치하는 

version, vers.needed, flag값...등을 찾을 수 없었다. 

더군다나 compressed size, uncompressed size가 다 FF이며 

아래 Central Directory File header도 compressed size, uncompressed size가 다 FF다.

 

그러던 중 galf가 뭐지...하다가 뒤집어 읽으니 flag였다. 

CRC부분에 해당하는 문자값을 나열하면 flag일까 싶어 나열해보았다.

flag{th3_vi11i4n_w3_n33d_#freeleffen}

 

vili4n인줄 알았는데 vi11i4n이었다