자 오늘은 Level 29 -> 30을 해보도록 하겠다.
(Login ID : bandit29 / Password : 4pT1t5DENaYuqnqvadYs1oE4QLCdjmJ7
1. 문제 내용
https://overthewire.org/wargames/bandit/bandit30.html
OverTheWire: Level Goal
We're hackers, and we are good-looking. We are the 1%. <!-- Please read and accept the Rules! --> Level Goal There is a git repository at ssh://bandit29-git@localhost/home/bandit29-git/repo via the port 2220. The password for the user bandit29-git is the s
overthewire.org
> 반딧29 깃 저장소 털어서 비밀번호 탈취해라! (반딧29 깃 저장소 비밀번호는 반딧29 비밀번호랑 똑가틈ㅋ)
2. 문제 풀이
> 이것도 이전 레벨과 같이, tmp 밑에 디렉토리를 만들어 그 디렉토리에 git clone 을 하도록 하자.
ssh 로 bandit29 로그인 한 뒤에 아래 스텝으로 ㄱㄱ
mkdir /tmp/b29Git
cd /tmp/b29Git
GIT_SSH_COMMAND="ssh -p 2220" git clone ssh://bandit29-git@localhost/home/bandit29-git/repo
git clone 때 비밀번호 입력하라고 하면 bandit29 비번(위에 있음) 입력하면 된다.
위와 같이 git clone 완료 되었다.
cd repo 로 이동하여, cat README.md 를 해보니 위와 같이 나온다.
> git log --oneline 으로 로그 히스토리를 보니 e65a928 이 있다.
> git checkout e65a928 으로 이동하여 README.md 를 읽어보자.
여기서도 password 가 저런 식으로 나온다. 음 그렇다면 다음의 명령어를 실행해 보자.
git log -p
> git log 에 -p 옵션을 주면 커밋에서 변경된 코드까지 아래와 같이 쭈르르 나온다.
하나 하나 더 설명하기는 너무 긴 것 같고 대략적으로 설명하자면
1. diff --git a/README.md b/README.md
-> a/README.md (기존파일) b/README.md (변경된 후의 파일) 즉 파일이 변경 됐다.
2. new file mode
-> 100 은 일반 파일이라는 소리이고, 644는 권한. 즉 (rw-r--r--) 이라는 소리.
3. --- /dev/null +++ b/README.md
->/dev/null 은 없는 파일임. 즉 없는 파일이 ---이 되고 b/README.md 파일이 +++ 됐다라는 그냥 b/README.md 파일이 생성 됐다 라는 뜻
4. @@ -0,0 +1,8 @@
-> b/README.md 파일이 원래는 -0,0 즉 아무 것도 없었는데 1번째 줄부터 8번째 줄까지 새로 추가됐다라는 소리이고,
5. 추가된 내용들이 밑에 + 로 나와있다.
자 아무튼 git log --oneline 을 하거나 git log -p 를 하거나 커밋은 두 개 밖에 안 보이고, 둘 다 비밀번호는 <no password~ 어쩌고> 로 되어 있다. 그러면 혹시 지워진 커밋이나 다른 커밋들은 없는지 봐야 한다.
git log --all --oneline
위와 같이 다른 커밋들도 주르륵 나온다.
그러면 git show commitId 를 통해 하나하나 위에서부터 변경 내용들을 탐색해보자.
git show 6ac7796
> 아까 한 것처럼 README>md 파일이 변경 되었는데, username이 bandit29 에서 bandit30에서 바뀐 것일 뿐 별 건 없다.
> 그럼 다음 걸 털어보자
git show 081ac38 // add data needed for development
!!!!! 찾은 것 같다.
여기서는 이전 password 가 <no~~~> 어쩌고 였는데 지금 버전에서는 qp~~어쩌고로 비밀번호 같은 것으로 바뀌어져 있다. 비밀번호 GET!
3. 요약
☞ git log --all 옵션을 주면 삭제 된 커밋들도 다 확인 할 수 있다.
☞ git show 커밋아이디 옵션을 주면 해당 커밋에서의 변경(삭제/추가) 내용을 볼 수 있다.
'해킹&보안' 카테고리의 다른 글
[반딧 워게임 : OverTheWire] Level 31 -> 32 (리눅스/해킹/보안 공부) (0) | 2025.03.23 |
---|---|
[반딧 워게임 : OverTheWire] Level 30-> 31 (리눅스/해킹/보안 공부) (0) | 2025.03.23 |
[반딧 워게임 : OverTheWire] Level 28 -> 29 (리눅스/해킹/보안 공부) (0) | 2025.03.22 |
[반딧 워게임 : OverTheWire] Level 27 -> 28 (리눅스/해킹/보안 공부) (0) | 2025.03.21 |
[반딧 워게임 : OverTheWire] Level 26 -> 27 (리눅스/해킹/보안 공부) (0) | 2025.03.21 |