CTF Write-Up Template

Writing a clear and well-structured CTF write-up is one of the best ways to improve your skills and contribute
to the cybersecurity community. For newcomers, the process can feel a bit unclear at first—what should you
document, how detailed should it be, and how do others typically format their solutions?
This guide breaks down a simple, consistent structure you can follow for any challenge. It helps you capture your
thought process, document the tools and steps you used, and present your solution in a way that’s helpful both for
yourself later on and for others learning from your work.

Template Structure

  • Template Header. Use the following YAML preamble at the top of your write-up to provide metadata about the challenge
    for the website to display correctly. This includes the title, date, description, tags, and categories. Adjust the
    fields as needed for each write-up and fill in the placeholders with the appropriate information for each challenge.
---
layout: post
title: ADD TITLE HERE
date: 2025-11-24 00:01:00
description: ADD A SHORT DESCRIPTION OF THE WRITE-UP HERE
tags: writeups <ADD_CATEGORY_TAG_HERE> <ADD_CTF_NAME_TAG_HERE> <YOUR_NAME_TAG_HERE>
categories: writeups <ADD_CATEGORY_TAG_HERE>
author: YOUR_NAME_HERE
thumbnail: <OPTIONAL_THUMBNAIL_IMAGE_URL>
---
  • Challenge Overview
    • Name of the CTF Event
    • Challenge Name
    • Category: (Web, Crypto, Forensics, Reverse Engineering, etc.)
    • Difficulty or Initial Points or Points earned
    • Description
    • Provided Files / URL
  • Goal: Describe the objective of the challenge and what you need to obtain (usually the flag).
  • Initial Analysis: Explain your first steps
    • What you examined first
    • Any assumptions or hypotheses
    • Tools used for reconnaissance
  • Solution Path: Provide a detailed, step-by-step explanation of how you solved the challenge:
    • Commands, scripts, or code snippets
    • Screenshots
    • Dead ends or mistakes you made along the way
  • Flag Capture: Show the final step that produced the flag.
    • Important: Do not share flags publicly if the CTF rules prohibit it or the event is still running.
    • Flag: flag{example_flag_here} with a screenshot of the flag in the terminal or application output.
  • Conclusion: Summarize what you learned from the challenge and any tips for others attempting it.

Important:

When using figures/images/screenshots, ensure they are clear and relevant. Use the following Markdown syntax to include images:


{% include figure.liquid loading="eager" path="assets/img/posts/2026-04-11-compress-me-baby/finding_flag.png"
class="img-fluid rounded z-depth-1" max_width="500px" zoomable=true%}

When using code snippets, ensure they are properly formatted and readable. Use triple backticks for code blocks:

```bash
# Example command
ls -la
```

I case you need to use double brackets in your code snippet, you can escape them with a the {% raw %} and {% endraw %} tags. For example, the following code snippet will render correctly:

{% raw %}{{ 1 + 2 }}{% endraw %}
# Otherwise the result will be rendered as `3` instead of `{{ 1 + 2 }}`.

Always test your write-up locally before publishing to ensure that all formatting, images, and code snippets render correctly.

Examples Writeups: