Avatar
Part time CTF Player learn every day!!
🌠 I Love Hoshimachi Suisei!! 🌠
🌠 I Love Hoshimachi Suisei!! 🌠

OverTheWire Bandit Level 9 → 10 tutorial!!

Login

Log in as bandit9 using the password you just obtained from Level 8 → 9.

ssh bandit9@bandit.labs.overthewire.org -p 2220
# password: 4CKMh1JI91bUIZZPXDqGanal4xvAg0JM

Why? Each Bandit level is a separate UNIX user. To solve 9 → 10, you must be the bandit9 user.

Task

Task

The password for the next level is stored in data.txt and appears as a human-readable string preceded by several = characters.

A little bit of Theory

  • strings extracts printable (ASCII) sequences from a (possibly) binary file.

    • Minimum length: -n 4 (often default).
    • Show offsets (optional): -t x (hex) or -t d (decimal).
  • grep filters lines by pattern.

    • Regex for three-or-more equals signs: -E '={3,}'
  • Pipe stringsgrep to cut noise fast.

Further reading:

Solution

  1. Confirm the file is present

    ls -l
    

    Why? Sanity check that data.txt exists and you’re in the right place.

ls data.txt

  1. Extract printable strings and look for ===

    strings data.txt | grep -E '={3,}'
    # or, slightly stricter to capture the token after the equals:
    strings data.txt | grep -E '={3,}[A-Za-z0-9+/=]{8,}'
    

    Why? strings surfaces human-readable chunks; grep narrows to the few lines preceded by equals signs.

strings + grep

  1. (Optional) Show offsets

    strings -t x data.txt | grep -E '={3,}'
    

    Why? Offsets help you verify where the readable text sits inside the file (not required to solve).

  2. Copy the password (no extra spaces/newlines).

  3. Log into the next level (bandit10)

    exit
    ssh bandit10@bandit.labs.overthewire.org -p 2220
    # paste the password you just found when prompted
    

Password

This is the password shown in my run; if yours differs, copy the one from your own terminal output.

FGUW5ilLVJrxX9kMYMmlN4MgbpfMiqey

Troubleshooting

  • Too much output from strings? → Add the filter: grep -E '={3,}'.
  • Still nothing? → Try the looser grep '===' (regex flavors differ slightly).
  • Odd characters? → Force C locale: LC_ALL=C strings data.txt | grep '==='.

Congrats 🎉 You carved the hidden text out of a binary and can now play as bandit10.


Thanks for reading!

Until next time — Otsumachi!! 💖☄️✨

Cinema

all tags

GOT-overwrite aboutme aead ai alphanumeric-shellcode apt argc0 argon2 aslr assembly asymmetric atoi automation backbox bandit base64 bash beginner behemoth binary binary-exploitation binary-to-ascii blackarch blind blind-sqli blogging blue-team bruteforce buffer-overflow buffer-overwrite c caesar canary capabilities checksec command-injection commonmark cookie cron crypto cryptography ctf cutter cyberchef cybersecurity defenders detection dev directory-traversal dnf docs drifter ecc education elf env envp exploitation finale forensics format-string formulaone frequency frequency-analysis gcc gdb getchar gfm ghidra github-pages governance gpg guide hashing hkdf http jekyll jmpbuf kali kasiski kdf kernel keylength kramdown krypton lab ld_preload leviathan lfi lfsr linux linux-syscall llmops log-poisoning ltrace manpage markdown maze memcpy mitigations mitmproxy mlops narnia natas networking newline-injection nonce nop-sled nx object-injection obsidian openssl osint overflow overthewire package-manager pacman parrot path path-hijacking pathname php pie pkc pki pointer-trick pqc priv-esc privilege-escalation provable-security pwn pwntools pyshark python race-condition radare2 rag randomness recon red-team redirect relro requests ret2env ret2libc reverse-engineering reversing ricing roadmap rop rot13 rsa scapy security seed seo serialization session setjmp-longjmp setuid shell shellcode smoke soc sockets sprintf sql-injection srop stack-canary stack-overflow strace strcmp strcpy streamcipher strings strncpy strtoul substitution suid suisei symlink symmetric terminal test threat-intel time-based tls troubleshooting tshark type-juggling ubuntu udp utumno vigenere virtualbox virtualization vmware vortex walkthrough web windows wireshark writing wsl x86
dash theme for Jekyll by bitbrain made with