Challenge page => https://overthewire.org/wargames/bandit/bandit9.html
The password for the next level is stored in the file data.txt and is the only line of text that occurs only once
Commands you may need to solve this level
grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd
This challenge is similar to the last one as well, as it involves searching for the password in a file that already contains a huge amount of text, making manual searching impractical.
Let's take a look at the file in question shall we?
Normally this is where I would put the Hint 1 part. But if you've been reading the previous walk-throughs and trying to solve this on your own, Google or DuckDuckGo should have been your first goto step. So its a pretty obvious hint.
Do not hesitate to use the search engines! Its not possible for one person to know everything. Besides, this is a learning process. You will naturally remember the commands after enough practice.
So, after some web searches, we can safely narrow down the commands required to
sort well, sorts the text files in alphabetical order.
uniq (from the DESCRIPTION section in its man file)
Filter adjacent matching lines from INPUT (or standard input), writing to OUTPUT (or standard output).
With no options, matching lines are merged to the first occurrence.
uniq cannot work on its own, as it needs a file with identical lines adjacent to each other, which will only happen if the file was sorted beforehand.
So we will need to pipe the output of sort to uniq to get the unique lines. Let's try it out shall we?
Well, that didn't go as planned. Looks like we should have paid more attention to the documentation!
uniq filters out duplicate lines that are adjacent to each other, and sends the original to
stdout. But the password is on the only line of text that occurs only once
How do we get
uniq to print out only those lines that occur only once in its input stream?
Hint: Look in the man page :)
uniq has a pretty convenient flag
-u that ensures only unique lines are printed.
So the final command would be
sort data.txt | uniq -u
Onto the next challenge!