개발 블로그

[DreamHack] VCS 본문

Study/Web Hacking

[DreamHack] VCS

얀 짱 2026. 9. 27. 18:18

https://dreamhack.io/wargame/challenges/3107

 

로그인 | Dreamhack

 

dreamhack.io

 

VCS를 구글링함.

https://m.blog.naver.com/redcow9981/221990688639

 

버전 관리 시스템 (VCS)란?

VCS(Version Control System) 버전 관리 시스템, 소스 관리(Source Control), 소스 코드 관리(SC...

blog.naver.com

 

버전 관리 시스템으로 .git 과 관련된 문제임을 확인함.

 

그래서 .git 폴더 속 파일들을 하나하나 열어봄.

config

 

해당 사용자의 커밋 내역을 확인할 수 있었음. 다만, 한국말인 것으로 보이는 문자들이 해당 vim 편집기에서는 깨져보여서 내용은 아쉽게도 확인할 수 없었음. 

 

index 파일은 이런 식으로 되어 있었는데 flag.txt가 있는 것으로보아 적극적으로 확인해보고 싶었지만 깨진 글씨 때문에 볼 수 없었음.

vim 편집기에서 깨진 파일 확인하는 방법을 구글링함.

 

찾아보니 vim 내부에서 바이너리 모드로 전환하여 확인할 수 있는 방법이 있었음.

esc키를 누르고 ::%!xxd 를 입력하면 확인 가능함.

 

아하, 이 파일은 vim으로 열게 아니라 HxD로 열었어야 한다는 것을 뒤늦게 깨달음.

 

해당 파일을 조금 더 분석하면 고유 번호 (sha-1)를 찾을 수 있음.

00000030의 04부터 00000040의 07까지를 Git 버전 관리 시스템이 전 세계 공통으로 사용하는 완전히 고정된 고유 번호 구역이라고 함.

 

근데 이거 아니라고 했음.

지난 커밋 기록을 확인해보기 위해 로그를 찍어봄.

 

원래 플래그 값에 가짜 플래그 값을 덮어쓴 것으로 보임. +++ 한 번 커밋하면 그 로그는 어딘가에 남아있기 때문에 명령어로 찾아보겠음.

 

HEAD@{1} 부분을 보면 107f7e0이라는 완전히 새로운 커밋 해시값이 등장함. 그 해시값으로 해당 로그를 확인하기.

 

역시나! 플래그 값을 얻음. 

'Study > Web Hacking' 카테고리의 다른 글

[DreamHack] BMP Recovery  (0) 2026.09.28
[DreamHack] structure-based carving  (0) 2026.09.27
[DreamHack] VBR  (0) 2026.09.27
[DreamHack] 🍊  (0) 2026.09.23
[DreamHack] Test Your Luck  (0) 2026.09.23