The repeatable method experienced players use on any challenge, a full worked example, and what to do when you get stuck.
About 12 minutes · 4 tasks
New players often think experts just know the answer. They don't. What they have is a loop they repeat until the flag falls out:
Read everything
The title, description, tags, category, difficulty and points are all clues. A challenge called "Base Jumping" with a blob of text probably involves Base64.
Look before you touch
What have you been given? A file? What type is it really? A website? What pages does it have? Collect facts before forming opinions. Players call this recon.
Make one specific guess
Turn what you see into something testable: "this looks like Base64", or "this page might trust the id in the URL".
Test it, one thing at a time
Try the idea. If you change several things at once and something happens, you won't know which change did it.
Write down what happened, and repeat
A failed test is still information, because it rules something out. Each result feeds your next guess.
Let's run the method on a real puzzle. You are given a Crypto challenge called Postcard, worth 100 points. The description reads: "A friend sent this. It looks like nonsense, but it has layers." There is one attachment:
N2E2NDYxN2I2YzM0NzkzMzcyNzM1ZjMwNmU1ZjZjMzQ3OTMzNzI3MzdkRead: what are the clues?
It is in the Crypto category, and the word "layers" suggests the text was scrambled more than once. Expect to decode it several times.
Look: what am I seeing?
One long run of upper and lower case letters and digits, with no spaces or punctuation. That character set is the signature of Base64, the most common encoding in CTFs.
Test: decode the Base64
It decodes cleanly, which is a good sign. The output looks different now:
7a64617b6c34793372735f306e5f6c34793372737dLook again: what is this new thing?
Only the digits 0 to 9 and the letters a to f. That is hexadecimal. There is a second clue too: in hex, 7a is z, 64 is d and 61 is a. It begins with zda!
Test: decode the hex
And there it is. The leet speak and the right format tell you this is the real flag:
zda{l4y3rs_0n_l4y3rs}Notice that nothing here needed deep knowledge. The real skill was recognizing what each piece of text looked like, and knowing what to try next.
This table is worth keeping nearby. It covers most of the strange text and files you will meet early on.
| What you see | Example | It is probably |
|---|---|---|
| Letters and digits, maybe + and /, often ending in = | SGVsbG8= | Base64 |
| Only 0-9 and a-f, usually in pairs | 48 65 6c 6c 6f | Hexadecimal |
| Only 0s and 1s, in groups of eight | 01001000 01101001 | Binary |
| Percent signs followed by two characters | Hello%20World%21 | URL encoding |
| Looks like a flag, but with the wrong letters | gkh{y0a4a3} | A Caesar or ROT cipher |
| Exactly 32 hex characters | 5f4dcc3b5aa7… | An MD5 hash |
| Exactly 64 hex characters | 5e884898da28… | A SHA-256 hash |
Three chunks split by dots, starting eyJ | eyJhbGci….eyJ1c2Vy….sig | A JWT (web login token) |
A file beginning with the bytes 89 50 4E 47 | .PNG.... | A PNG image, whatever its name says |
A file beginning with PK | PK.. | A ZIP archive |
Your turn
Practice only: hints are free and nothing here affects your score.
SGVsbG8gd29ybGQ=. What should you try first?Your friend sent one more. It has been scrambled the same way, so repeat the steps from the worked example.
N2E2NDYxN2I2YzMwMzA2YjVmNjIzMzY2MzA3MjMzNWY3OTMwNzU1ZjZjMzMzNDcwN2Q=LabDecoder workbench
Paste text in, choose a method and read the result. Use as input moves the result back to the top so you can peel off the next layer.
Output
Your result appears here.
Your turn
Practice only: hints are free and nothing here affects your score.
You will get stuck. Everyone does, and it is where most of the learning happens. Try these in order:
Notes stop you repeating failed ideas, and they turn into your own write-ups later. They don't need to be neat:
Challenge: Postcard (Crypto, 100 pts)
Given: postcard.txt, one long line of text
Tried:
- Base64 decode: worked, output looks like hex
- Hex decode: got the flag!
Flag: zda{l4y3rs_0n_l4y3rs}
Learned: hex starting 7a 64 61 means "zda"Your turn
Practice only: hints are free and nothing here affects your score.