Bandit Level 2 Walkthrough

Bandit Level 2 Walkthrough

Level 1 ➔ Level 2: Handling Special Filenames

1. Analyzing the Mission Brief

Looking at the screenshot for Level 2, the goal seems deceptively simple: "The password for the next level is stored in a file called - located in the home directory."

Key Insights from the Image:

  • Target Filename: - (Just a single dash).
  • Hint: The "Helpful Reading Material" points us toward "dashed filenames" and "special characters."

If you try to run cat -, the terminal will just sit there and do nothing. It won't show you the password. To understand why, we need to look at how Linux "thinks."

2. The Feynman Explanation: Name vs. Instruction

In Linux, the dash symbol (-) is very special. It's usually not a name; it's a way to give "options" to a command (like ls -l or ssh -p).

The Dog Named "Sit" Analogy:

Imagine you have a dog and you decide to name him "Sit". You have a problem now. When you yell "Sit!", does the dog come to you because you called his name, or does he sit down because you gave him a command?

The Linux terminal has the same confusion. When you type cat -, it doesn't think "-" is a filename. It thinks you are giving it a special instruction to "wait for me to type something on the keyboard."

To fix this, you have to be specific. Instead of calling him "Sit," you say: "The dog in this room named Sit." In Linux, we use ./ to mean "the thing in this current room (directory)."

3. Step-by-Step Solution

Log in as bandit1 using the password you found in the previous level. Then, execute these commands:

# Step 1: List files to confirm the dash file exists
bandit1@bandit:~$ ls
-

# Step 2: Read the file using a relative path
bandit1@bandit:~$ cat ./-
26681739e515224e7141ad7c1b3a4d40

Why did cat ./- work?

By adding ./ before the dash, we told the computer: "Look in the current directory for a file named dash." This removes the confusion. The terminal no longer sees it as a command option; it sees it as a clear path to a file.

4. Other Ways to Solve This

In Linux, there is often more than one way to open a "stubborn" file. You could also have used:

  • Redirecting Input: cat < - (This tells cat to take the contents of the file named '-' as input).
  • Full Path: cat /home/bandit1/- (Being 100% specific about the file's "home address").

Level 2 Complete!

Save the password you just found. You'll need it to log in as bandit2 for the next challenge, where filenames get even more creative!

Tags: #Linux #Bandit #OverTheWire #CatCommand #SpecialCharacters #DashedFilename #CyberSecurity #FeynmanTechnique #CodeWithPritom

Comments