<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Frederik353</title>
    <link>https://frederik353.github.io/writeups/</link>
    <description>Recent content on Frederik353</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© 2026 Frederik Tokle Negård</copyright>
    <lastBuildDate>Sat, 25 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://frederik353.github.io/writeups/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Velvet Table</title>
      <link>https://frederik353.github.io/writeups/ctfs/umd-26/velvet-table/</link>
      <pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/umd-26/velvet-table/</guid>
      <description>Glibc 2.32+ heap note manager wrapped in heavy XOR obfuscation. An inverted size check in the cashout handler turns the dev’s careful tcache bookkeeping into a free UAF, with a slightly longer smallbin attack waiting behind it as the intended path.</description>
      
    </item>
    
    <item>
      <title>Phantom</title>
      <link>https://frederik353.github.io/writeups/ctfs/0xfunctf-26/phantom/</link>
      <pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/0xfunctf-26/phantom/</guid>
      <description>Physical page UAF in a kernel module: reclaim the freed page as a PMD, forge 2MB huge page entries for arbitrary physical memory R/W, and overwrite modprobe_path to read the flag.</description>
      
    </item>
    
    <item>
      <title>Blogler</title>
      <link>https://frederik353.github.io/writeups/ctfs/lactf-26/blogler/</link>
      <pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/lactf-26/blogler/</guid>
      <description>YAML anchor aliasing creates a shared reference that bypasses path validation via display_name mutation.</description>
      
    </item>
    
    <item>
      <title>Narnes and Bobles &amp; Bobles and Narnes</title>
      <link>https://frederik353.github.io/writeups/ctfs/lactf-26/narnes-bobles-and-bobles-narnes/</link>
      <pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/lactf-26/narnes-bobles-and-bobles-narnes/</guid>
      <description>Two type confusion bugs in a Bun bookstore: string price NaN trick, then batch INSERT column inference.</description>
      
    </item>
    
    <item>
      <title>Tcademy</title>
      <link>https://frederik353.github.io/writeups/ctfs/lactf-26/tcademy/</link>
      <pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/lactf-26/tcademy/</guid>
      <description>Heap exploitation on glibc 2.35: integer underflow to massive heap overflow, and two paths to shell: libc GOT overwrite or House of Apple 2 FSOP.</description>
      
    </item>
    
    <item>
      <title>AHC - Average Heap Challenge</title>
      <link>https://frederik353.github.io/writeups/ctfs/pascal-26/ahc/</link>
      <pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/pascal-26/ahc/</guid>
      <description>Tcache bin confusion via chunk size corruption.</description>
      
    </item>
    
    <item>
      <title>Wordy</title>
      <link>https://frederik353.github.io/writeups/ctfs/pascal-26/wordy/</link>
      <pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/pascal-26/wordy/</guid>
      <description>Recovering MT19937 state from partial outputs using Z3 SAT solving.</description>
      
    </item>
    
    <item>
      <title>Curly Crab</title>
      <link>https://frederik353.github.io/writeups/ctfs/pascal-26/curly-crab/</link>
      <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/pascal-26/curly-crab/</guid>
      <description>Reversing Rust serde deserialization to recover a JSON schema.</description>
      
    </item>
    
    <item>
      <title>Grande Inutile Tool</title>
      <link>https://frederik353.github.io/writeups/ctfs/pascal-26/grande-inutile-tool/</link>
      <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/pascal-26/grande-inutile-tool/</guid>
      <description>Buffer overflow corrupts path validation flag, enabling path traversal.</description>
      
    </item>
    
    <item>
      <title>Pdfile</title>
      <link>https://frederik353.github.io/writeups/ctfs/pascal-26/pdfile/</link>
      <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/pascal-26/pdfile/</guid>
      <description>XXE injection with blacklist bypass via URL encoding.</description>
      
    </item>
    
    <item>
      <title>StrangeVM</title>
      <link>https://frederik353.github.io/writeups/ctfs/pascal-26/strangevm/</link>
      <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/pascal-26/strangevm/</guid>
      <description>Reverse a simple VM to understand its character transformation.</description>
      
    </item>
    
    <item>
      <title>Travel Playlist</title>
      <link>https://frederik353.github.io/writeups/ctfs/pascal-26/travel-playlist/</link>
      <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/pascal-26/travel-playlist/</guid>
      <description>Path traversal via unsanitized file path parameter.</description>
      
    </item>
    
    <item>
      <title>Zazastore</title>
      <link>https://frederik353.github.io/writeups/ctfs/pascal-26/zazastore/</link>
      <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/pascal-26/zazastore/</guid>
      <description>NaN comparison bypass in a Node.js shopping cart.</description>
      
    </item>
    
    <item>
      <title>Ruid_login</title>
      <link>https://frederik353.github.io/writeups/ctfs/scarlet-26/ruid_login/</link>
      <pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/scarlet-26/ruid_login/</guid>
      <description>Exploiting predictable RUIDs, buffer overflow, and executable stack for shellcode execution.</description>
      
    </item>
    
    <item>
      <title>speedjournal</title>
      <link>https://frederik353.github.io/writeups/ctfs/scarlet-26/speedjournal/</link>
      <pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/scarlet-26/speedjournal/</guid>
      <description>Exploiting a TOCTOU race condition to bypass authentication checks.</description>
      
    </item>
    
    <item>
      <title>Encryptor</title>
      <link>https://frederik353.github.io/writeups/ctfs/ept-25/encryptor/</link>
      <pubDate>Sat, 08 Nov 2025 00:00:00 +0000</pubDate>
      
      <guid>https://frederik353.github.io/writeups/ctfs/ept-25/encryptor/</guid>
      <description>Leaking a stack canary using RC4 keystream bias, then ret2win.</description>
      
    </item>
    
  </channel>
</rss>
