SlideShare a Scribd company logo
1 of 15
Download to read offline
Plaid CTF 2017 Write-Up
- zipper (MISC 50pts) -
by Alchemic
(KoreaTech 이세한)
2
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
이 문제는 MISC 문제로 출제되었지만, Forensic 문제로 생각해도 무방한 문제입니다.
문제에서는 zip 형태의 압축 파일이 하나 주어지고, 이 파일을 고치고
flag를 얻어낼 수 있는지 물어봅니다.
3
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
파일을 다운로드 받으면 [zipper.zip] 이라는 파일이 받아집니다.
먼저 압축을 해제하려고 하면 위 그림과 같이 파일이름이 너무 길다는
에러 메시지가 출력됩니다.
4
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
[zipdetails]를 이용하여 파일을 살펴보면...
[Filename Length]가 ‘2329’로 너무 크게 설정되어 있는 것을 확인할 수 있습니다.
5
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
위 그림은 Zip 파일 형식에 대해 설명한 그림입니다.
참고 : https://github.com/corkami/pics/blob/master/binary/zip101/zip101.pdf
6
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
앞의 [zipdetails]로 살펴보았듯이 HexEditor로 살펴보면
[Filename Length]는 ‘001A’와 ‘00A4’에 존재하는 것을 확인할 수 있으며,
각각 [Local Header] 영역과 [Central Header] 영역인 것을 알 수 있다.
7
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
[Filename Length]를 크기가 작은 임의의 값인 ‘0008’로 수정합니다.
8
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
현재 보여지는 그림은 [Local Header] 영역의 정보들입니다.
[Filename Length]를 수정하고 다시 [zipdetails]를 이용하여 살펴보면,
수정된 것이 확인이 되며, 수정된 크기에 맞춰서 [Filename]이 나타난 것을 확인할 수
있습니다. (현재는 Null 값으로 입력이 되어 있습니다.)
9
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
위 그림은 [Central Header] 영역의 정보들을 표시한 것입니다.
앞의 [Local Header] 영역과 같이 [Filename Length]와 [Filename] 정보가 보이는 것을
확인할 수 있습니다.
10
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
[Filename]을 수정하기 위해 HexEditor를 이용하여 zip 파일을 엽니다.
위 그림에서 빨간색 상자로 표시한 부분이 바로 [Filename] 정보가 표시되었던
부분입니다.
11
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
현재 앞의 작업에서 [Filename Length]의 크기를 ‘0008’로 수정하였기 때문에
[Filename]의 크기 또한 8byte로 되어야 합니다.
따라서 8글자의 문자로 수정하면 됩니다. (예를 들어, ‘PlaidCTF’ 혹은 ‘AAAABBBB’)
12
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
압축 파일이 제대로 수정되었는지 확인해보기 위해 [zipinfo]를 이용합니다.
# zipinfo zipper.zip
압축 파일 내의 파일이름이 출력되고, 압축률이 71.5% 라는 것을 확인할 수
있습니다.
이제 압축을 해제할 수 있습니다!
13
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
압축을 해제하고 파일의 내용을 확인하면 플래그(flag)를 획득할 수 있습니다!
14
The Flag is
PCTF{f0rens1cs_yay}
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
Thank You.

More Related Content

More from Sehan Lee

More from Sehan Lee (9)

GoogleCTF 2016 [No Big Deal] Write-Up (ver.korean)
GoogleCTF 2016 [No Big Deal] Write-Up (ver.korean)GoogleCTF 2016 [No Big Deal] Write-Up (ver.korean)
GoogleCTF 2016 [No Big Deal] Write-Up (ver.korean)
 
GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)
GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)
GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)
 
GoogleCTF 2016 [Ernst Echidna] Write-Up (ver.korean)
GoogleCTF 2016 [Ernst Echidna] Write-Up (ver.korean)GoogleCTF 2016 [Ernst Echidna] Write-Up (ver.korean)
GoogleCTF 2016 [Ernst Echidna] Write-Up (ver.korean)
 
PlaidCTF 2016 Write-Up [hevc (MISC 50pts)]
PlaidCTF 2016 Write-Up [hevc (MISC 50pts)]PlaidCTF 2016 Write-Up [hevc (MISC 50pts)]
PlaidCTF 2016 Write-Up [hevc (MISC 50pts)]
 
Attacking Session Management
Attacking Session ManagementAttacking Session Management
Attacking Session Management
 
Web Application Technologies
Web Application TechnologiesWeb Application Technologies
Web Application Technologies
 
Packet Tracer를 이용한 OSPF 설정
Packet Tracer를 이용한 OSPF 설정Packet Tracer를 이용한 OSPF 설정
Packet Tracer를 이용한 OSPF 설정
 
레이스 컨디션 기초(Basic Race Condition)
레이스 컨디션 기초(Basic Race Condition)레이스 컨디션 기초(Basic Race Condition)
레이스 컨디션 기초(Basic Race Condition)
 
Packet tracer 설치 및 사용법
Packet tracer 설치 및 사용법Packet tracer 설치 및 사용법
Packet tracer 설치 및 사용법
 

Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]

  • 1. Plaid CTF 2017 Write-Up - zipper (MISC 50pts) - by Alchemic (KoreaTech 이세한)
  • 2. 2 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] 이 문제는 MISC 문제로 출제되었지만, Forensic 문제로 생각해도 무방한 문제입니다. 문제에서는 zip 형태의 압축 파일이 하나 주어지고, 이 파일을 고치고 flag를 얻어낼 수 있는지 물어봅니다.
  • 3. 3 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] 파일을 다운로드 받으면 [zipper.zip] 이라는 파일이 받아집니다. 먼저 압축을 해제하려고 하면 위 그림과 같이 파일이름이 너무 길다는 에러 메시지가 출력됩니다.
  • 4. 4 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] [zipdetails]를 이용하여 파일을 살펴보면... [Filename Length]가 ‘2329’로 너무 크게 설정되어 있는 것을 확인할 수 있습니다.
  • 5. 5 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] 위 그림은 Zip 파일 형식에 대해 설명한 그림입니다. 참고 : https://github.com/corkami/pics/blob/master/binary/zip101/zip101.pdf
  • 6. 6 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] 앞의 [zipdetails]로 살펴보았듯이 HexEditor로 살펴보면 [Filename Length]는 ‘001A’와 ‘00A4’에 존재하는 것을 확인할 수 있으며, 각각 [Local Header] 영역과 [Central Header] 영역인 것을 알 수 있다.
  • 7. 7 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] [Filename Length]를 크기가 작은 임의의 값인 ‘0008’로 수정합니다.
  • 8. 8 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] 현재 보여지는 그림은 [Local Header] 영역의 정보들입니다. [Filename Length]를 수정하고 다시 [zipdetails]를 이용하여 살펴보면, 수정된 것이 확인이 되며, 수정된 크기에 맞춰서 [Filename]이 나타난 것을 확인할 수 있습니다. (현재는 Null 값으로 입력이 되어 있습니다.)
  • 9. 9 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] 위 그림은 [Central Header] 영역의 정보들을 표시한 것입니다. 앞의 [Local Header] 영역과 같이 [Filename Length]와 [Filename] 정보가 보이는 것을 확인할 수 있습니다.
  • 10. 10 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] [Filename]을 수정하기 위해 HexEditor를 이용하여 zip 파일을 엽니다. 위 그림에서 빨간색 상자로 표시한 부분이 바로 [Filename] 정보가 표시되었던 부분입니다.
  • 11. 11 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] 현재 앞의 작업에서 [Filename Length]의 크기를 ‘0008’로 수정하였기 때문에 [Filename]의 크기 또한 8byte로 되어야 합니다. 따라서 8글자의 문자로 수정하면 됩니다. (예를 들어, ‘PlaidCTF’ 혹은 ‘AAAABBBB’)
  • 12. 12 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] 압축 파일이 제대로 수정되었는지 확인해보기 위해 [zipinfo]를 이용합니다. # zipinfo zipper.zip 압축 파일 내의 파일이름이 출력되고, 압축률이 71.5% 라는 것을 확인할 수 있습니다. 이제 압축을 해제할 수 있습니다!
  • 13. 13 Plaid CTF 2017 Write-Up [zipper (MISC 50pts)] 압축을 해제하고 파일의 내용을 확인하면 플래그(flag)를 획득할 수 있습니다!
  • 14. 14 The Flag is PCTF{f0rens1cs_yay} Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]