How to write a good Write-up


I’ve participated to lot of CTFs and every time one ends I always read good, bad and “shitty” Write-up.

When you are writing a Write-up, keep in mind that you are not writing it for Fame and Glory (maybe also for this), but you should write it for other users that want to learn and explore new way to think and most important,
you should write it for yourself!! .

Sometimes I find challenges in CTF that I’ve already completed some time ago, or at work I see problems that I’ve already solved during a CTF and going back reading those Write-up made me cringe every time.

So I think it will be useful to write some guidelines for us (and you!) to follow when writing a write-up.

Step 0 - Required Information

If you are writing a Write-up for a CTF, there are some information that you NEED to include. These information are:

  • CTF name
  • Challenge name
  • Challenge description
  • Challenge category => so users know the chall’s field
  • Challenge points => so users know the chall’s difficulty
  • CTF Year and Date [OPTIONAL] => so users know if it’s outdated

Step 1 - Content

When writing your content don’t be too greedy.
I’ve seen some Write-up made up of a to-do list, some made of just Python/JS code with no comment whatsoever.

You have to explain the exact sequence of thoughts you went through to go from A to B.
“I have 2, I know that 2 + 2 = flag so I made this script that computes 2 + 2 and I got the flag
Just don’t post your code without a description or some comments please.

If you used an already existing script from somewhere else, be sure to back it up. Too many times people post links to their source code that after some time result broken.

When writing your content don’t be too verbose.
I mean, you can, but (at the top) insert an abstract/summary as a TL;DR (at least 50 words)

Don’t forget that if you include too many useless details you will result boring.
So you can use some memes pic or write some jokes to keep the readers glued to the screen.

Step 2 - Extra Points

You get GOLDEN SHINING Extra points if:

  • You use bold, italic or both to enhance the Content’s key-point.
  • You add some screenshots.
  • You correctly format small code snippet, path, strings, etc.
  • Your write-up is reproducible (You must attach the challenge source-code, sometimes this can’t be done).
  • Your write-up is multilingual (English is a priority. At least for TL;DRs).