bandit Write-up

Bandit Level 26 ~ 30

부산영롱 2023. 12. 10. 23:39

Bandit Level 26 → Level 27

지난 포스팅에서 bash쉘로 bandit26에 접속 성공했었다.

bandit27 계정 소유의 setuid가 설정된 파일이 있어서 너무나 쉽게 다음 패스워드를 얻을 수 있었다.


Bandit Level 27 → Level 28

이번에는 git을 이용한 문제이다. 2220 포트의 ssh://bandit27-git@localhost/home/bandit27-git/repo에 있는 git 저장소를 복사하고 다음 패스워드를 찾아야한다.

먼저 git을 불러올 폴더를 하나 만든 다음 git clone을 이용해서 저장소를 복사해온다.

복사해올 때 패스워드를 물어보는데 bandit27 패스워드를 입력하면 된다.

복사가 완료되고 해당 경로에 들어가보니 README라는 파일이 있고 여기에서 패스워드를 확인할 수 있었다.


Bandit Level 28 → Level 29

지난 레벨과 문제가 거의 똑같다. 복사해오는 것까지 똑같이 해보자

이번에는 README.md 라는 파일이 있고 내용을 보니 username 'bandit29'와 패스워드는 'xxxxxxxxxx'로 되어 있다.

'git log'로 커밋 히스토리를 확인해보았다. 가장 최신 커밋 메시지를 보니 "정보 누출" 문제를 수정했다는 내용이 적혀있다.

'git show'로 가장 최신 커밋에 대한 내용을 확인해보니 이전에 노출되어 있던 비밀번호를 보호하기 위한 수정이 이루어졌다는 것을 알 수 있었다.


Bandit Level 29 → Level 30

이번에도 같은 문제이다. 또 다시 git을 가져와보자.

이번에는 password가 없다고 적혀있다.

'git log'로 히스토리를 확인한 뒤 'git show'로 가장 최근 커밋과 이전 커밋을 확인해도 별다른 내용이 없다.

branch를 확인해보니 원격저장소에 master 이외에 다른 branch가 있다는 것을 확인할 수 있었다.

'dev'라는 branch로 스위칭한 뒤 'git show'로 확인해보니 변경된 패스워드를 찾을 수 있었다.


Bandit Level 30 → Level 31

역시나 동일한 문제라는 것을 알 수 있다.

최신 커밋을 봐도 아무 내용이 없고 branch 목록을 봐도 master 말고 다른 branch가 없다.

tag를 확인해보니 'secret'이라는 것이 있었고 그 안에 패스워드가 있었다.

 

tag는 무언가 표시를 해두기 위한 태깅 기능으로 커밋과 다른 점은 커밋은 내용을 수정할 수 있지만 tag는 읽기 전용 커밋이라고 볼 수 있다.

 

보통 제품 1.0이 릴리즈 될 때 태깅을 한번 해두고 1.1버전을 개발하는 중에는 브랜치와 커밋으로 관리하다가 1.1버전이 완성되면 다시 태깅을 해두는 식으로 사용된다고 한다.

 

'bandit Write-up' 카테고리의 다른 글

Bandit Level 31 ~ 33  (0) 2023.12.13
Bandit Level 21 ~ 25  (0) 2023.12.05
Bandit Level 16 ~ 20  (1) 2023.12.05
Bandit Level 11 ~ 15  (1) 2023.12.04
Bandit Level 6 ~ 10  (0) 2023.12.01