ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ctf-d] 누군가 부정행위를 했다는...
    2022/Write-Ups 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이었다