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.