| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 루키즈33기
- 함수
- 클래스
- dropna
- 예외처리
- tunder client
- 생성형AI
- 꽉뚝짝 시장
- sqld
- 지도학습
- OT후기
- git push -u
- SK쉴더스
- 보안공부
- 수업복습
- 성능평가지표
- Linked List
- 방콕
- echo 명령어
- pandas
- 루키즈
- 데이터분포
- gdgm
- 블록(Block)
- Package
- 레이블인코딩
- node.js
- 패키지
- 태국
- List
- Today
- Total
개발 블로그
[DreamHack] VCS 본문
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 폴더 속 파일들을 하나하나 열어봄.


해당 사용자의 커밋 내역을 확인할 수 있었음. 다만, 한국말인 것으로 보이는 문자들이 해당 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 |