DEV Community

Krishna
Krishna

Posted on

1

OverTheWire Bandit Level 8 Level 9 walk-through

Challenge page => https://overthewire.org/wargames/bandit/bandit9.html

Level Goal

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?

file contents

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 and uniq

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.

So 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?

unique lines of data.txt

Well, that didn't go as planned. Looks like we should have paid more attention to the documentation!

Turns out, 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 :)


Turns out 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

Solution

Onto the next challenge!

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more