Previous Level: Level 29
Login
SSH: ssh bandit29@bandit.labs.overthewire.org -p 2220
Password: bbc96594b4e001778eee9975372716b2
Task
There is a git repository at ssh://bandit29-git@localhost/home/bandit29-git/repo. The password for the user bandit29-git is the same as for the user bandit29.
Clone the repository and find the password for the next level.
A little bit of Theory
The introduction to Git can be found in Level 28 and Level 29.
Git branching is another feature of the version control system. It allows you to split the development into different branches. Specifically, there is a master branch from which the software can be taken and it can be separately worked on. You can change and add features while still maintaining a working master branch. Once the work is done, it can be integrated into the master branch again. This allows for additional version control. You can offer a production branch with usable software, while fixing bugs or adding features in a different development branch.
The basic commands for working with branches are:
git branch
: List (-a
), create, or delete branchesgit checkout <branch_name>/git switch <branch_name>
: Switch branchesgit merge
: Join two or more branches
Solution
We start the same way as in the two previous level. We create a folder, clone the git repository and check its content. Since there is only a README.md we check its contents.
|
|
The sentence ’no passwords in production!’ sounds like there might be more branches. So we check out, if this is the case.
|
|
And we were correct. We got a list of branches of this repository. Now, the most interesting one based on the description in ‘README’ would be the ‘dev’ branch. Since if the password is not in the production branch, it is most likely in the development branch.
To test that theory, we can switch to this branch and check its content.
|
|
And again, the assumption was correct. The ‘dev’ branch contains the password in the ‘README’ file.
https://overthewire.org/wargames/bandit/bandit30.html
Next Level: Level 31