picoCTF hidetosee

picoCTF HideToSee – Cryptography Challenge Walkthrough

Challenge Overview

In this beginner-friendly picoCTF HideToSee cryptography challenge, weโ€™re given an image file named atbash.jpg. The goal is to find the hidden message or flag inside this image.

picoCTF HideToSee steghide file extraction

๐Ÿ›  Tools I Used

  1. strings โ€“ To inspect readable strings embedded in the image.
  2. steghide โ€“ To extract hidden files from the image.

๐Ÿ”Ž Step-by-Step Walkthrough – picoCTF HideToSee

Step 1: Extracting Hidden Data

First, I used the strings command to look for any suspicious text inside the image:

strings atbash.jpg
 strings test hide information

No useful clues there, so I tried a steganography tool called steghide to see if thereโ€™s anything hidden inside the image.

steghide extract -sf atbash.jpg
steghide extract hidden data

After hitting enter, the tool asked for a passphrase. I just hit enter (empty password), and it worked!

It extracted a file named:

encrypted.txt
picoctf encrypted text

Inside, I found this text:

krxlXGU{zgyzhs_xizxp_92533667}

Looks like a flag, but it’s encrypted.

Step 2: Analyzing the Cipher

Letโ€™s break it down:

Encrypted part:

zgyzhs_xizxp

This looks like a substitution cipher.

I recognized the structure might be an Atbash cipher โ€” a simple cipher where each letter is mapped to its reverse counterpart in the alphabet:

A <-> Z
B <-> Y
C <-> X
...

Step 3: Decrypting with Atbash Cipher

Applying Atbash manually:

CipherPlain
ZA
GT
YB
ZA
HS
SH
__
XC
IR
ZA
XC
PK

You can also use this online tool to quickly decode Atbash ciphers:
๐Ÿ‘‰ https://rumkin.com/tools/cipher/atbash/

picoctf hideosee flag

So the decrypted flag becomes:

picoCTF{atbash_crack_92533667}

Optional: Python Script for Decryption

Here’s a quick Python script to decrypt any Atbash-encrypted text:

def atbash(text):
    result = ''
    for char in text:
        if char.isalpha():
            if char.islower():
                result += chr(219 - ord(char))  # 219 = 'a' + 'z'
            else:
                result += chr(155 - ord(char))  # 155 = 'A' + 'Z'
        else:
            result += char
    return result

cipher_text = "zgyzhs_xizxp"
decrypted = atbash(cipher_text)
print("Decrypted:", decrypted)

Final Thoughts

This was a fun and simple introduction to steganography and basic cryptography using the Atbash cipher. These challenges are great for beginners looking to sharpen their CTF and cybersec skills!


other blogs

  1. How to Install Burp Suite in Arch Linux
  2. 10 Best Final Year Cybersecurity Project Ideas with source code.
  3. Interactive Snake Game Using OpenCV & Hand Tracking
  4. ArchLinux terminal customization with neofetch and fastfetch
  5. Microblogging for Cybersecurity: The Future of Short-form Content
  6. Cyber Security vs AI: Which Career Should You Choose?
  7. Instagram Video Downloader: Your Easy-to-Use Tool
  8. Install Neovim on ArchLinux โ€“ Easy Setup with init.vim Guide

Leave a Comment

Your email address will not be published. Required fields are marked *