<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pwn on Adamino CTF Writeups</title><link>https://ctf.adamino.dk/tags/pwn/</link><description>Recent content in Pwn on Adamino CTF Writeups</description><generator>Hugo</generator><language>en</language><copyright>Adamino 2023</copyright><lastBuildDate>Sun, 23 Aug 2026 14:30:00 +0100</lastBuildDate><atom:link href="https://ctf.adamino.dk/tags/pwn/index.xml" rel="self" type="application/rss+xml"/><item><title>Matching the Remote with Docker (glibc pinning)</title><link>https://ctf.adamino.dk/tools/pwn/matching-glibc-docker/</link><pubDate>Sun, 23 Aug 2026 14:30:00 +0100</pubDate><guid>https://ctf.adamino.dk/tools/pwn/matching-glibc-docker/</guid><description>&lt;h1 id="matching-the-remote-with-docker-glibc-pinning-for-pwn"&gt;Matching the Remote with Docker: glibc Pinning for Pwn&lt;a href="#matching-the-remote-with-docker-glibc-pinning-for-pwn" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
 stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Here&amp;rsquo;s the failure mode that eats hours: your exploit works flawlessly on your machine, then does nothing against the remote. Nine times out of ten the culprit is the &lt;strong&gt;C library&lt;/strong&gt;. libc offsets — the distance from a leaked &lt;code&gt;puts&lt;/code&gt; to &lt;code&gt;system&lt;/code&gt;, from &lt;code&gt;system&lt;/code&gt; to a &lt;code&gt;/bin/sh&lt;/code&gt; string, the exact &lt;code&gt;one_gadget&lt;/code&gt; constraints — are &lt;em&gt;specific to the exact glibc build&lt;/em&gt; on the target. Your local Ubuntu&amp;rsquo;s libc is almost never byte-identical to the challenge&amp;rsquo;s.&lt;/p&gt;</description></item><item><title>pwntools &amp; checksec</title><link>https://ctf.adamino.dk/tools/pwn/pwntools/</link><pubDate>Sun, 23 Aug 2026 14:00:00 +0100</pubDate><guid>https://ctf.adamino.dk/tools/pwn/pwntools/</guid><description>&lt;h1 id="pwntools--checksec-the-binary-exploitation-workbench"&gt;pwntools &amp;amp; checksec: The Binary Exploitation Workbench&lt;a href="#pwntools--checksec-the-binary-exploitation-workbench" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
 stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;If you do any amount of binary exploitation, &lt;a href="https://github.com/Gallopsled/pwntools"&gt;pwntools&lt;/a&gt; is the library that turns a fiddly, error-prone process into a few readable lines of Python. It handles the plumbing — spawning the target, talking to it over a socket, packing addresses into the right byte order, parsing leaked pointers — so you can spend your brain on the actual bug. &lt;code&gt;checksec&lt;/code&gt;, which ships alongside it, is the thirty-second triage you run &lt;em&gt;first&lt;/em&gt; on every binary to know what you&amp;rsquo;re up against.&lt;/p&gt;</description></item><item><title>Mindbreaker</title><link>https://ctf.adamino.dk/brunner/pwn/2026/mindbreaker/</link><pubDate>Sat, 22 Aug 2026 13:05:48 +0200</pubDate><guid>https://ctf.adamino.dk/brunner/pwn/2026/mindbreaker/</guid><description>&lt;p&gt;&lt;strong&gt;Challenge Name:&lt;/strong&gt; pwn_mindbreaker&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Category:&lt;/strong&gt; PWN&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Very Hard&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Anakin&lt;/p&gt;
&lt;h2 id="challenge-description"&gt;Challenge Description&lt;a href="#challenge-description" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
 stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;INTERNAL MEMO: Automation &amp;amp; Robotics Division&lt;/p&gt;
&lt;p&gt;Back when Brunnerne Inc.™ was still a home bakery, someone automated the cake-decorating line with a LEGO MINDSTORMS EV3 brick. Several restructurings later, nobody remembers how the firmware works, but it is load-bearing, so we do not touch it.&lt;/p&gt;</description></item><item><title>Pure Notes</title><link>https://ctf.adamino.dk/brunner/pwn/2026/pure-notes/</link><pubDate>Sat, 22 Aug 2026 12:18:50 +0200</pubDate><guid>https://ctf.adamino.dk/brunner/pwn/2026/pure-notes/</guid><description>&lt;p&gt;&lt;strong&gt;Category:&lt;/strong&gt; PWN&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Medium-Hard&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Vincent&lt;/p&gt;
&lt;h2 id="challenge-description"&gt;Challenge Description&lt;a href="#challenge-description" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
 stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;My boss said that our current note taking solution isn&amp;rsquo;t productive and functional. So I made this purely functional note taking app.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;We get the full Haskell source (&lt;a href="https://ctf.adamino.dk/brunner/pwn/2026/pure-notes/files/Main.hs"&gt;Main.hs&lt;/a&gt;), a &lt;a href="https://ctf.adamino.dk/brunner/pwn/2026/pure-notes/files/Dockerfile"&gt;Dockerfile&lt;/a&gt;, and a &lt;code&gt;flag.txt&lt;/code&gt;. The program is a classic heap-note menu — &lt;code&gt;new&lt;/code&gt;, &lt;code&gt;write&lt;/code&gt;, &lt;code&gt;writehex&lt;/code&gt;, &lt;code&gt;view&lt;/code&gt;, &lt;code&gt;delete&lt;/code&gt;, &lt;code&gt;list&lt;/code&gt; — but written in Haskell on top of the C FFI allocator.&lt;/p&gt;</description></item><item><title>Locked Out</title><link>https://ctf.adamino.dk/brunner/pwn/2026/locked-out/</link><pubDate>Fri, 21 Aug 2026 21:01:49 +0200</pubDate><guid>https://ctf.adamino.dk/brunner/pwn/2026/locked-out/</guid><description>&lt;p&gt;&lt;strong&gt;Category:&lt;/strong&gt; PWN&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Medium&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Togby &amp;amp; Nissen&lt;/p&gt;
&lt;h2 id="challenge-description"&gt;Challenge Description&lt;a href="#challenge-description" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
 stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;After Brunnerne Inc. refused to raise our wages, us bakers on the factory floor went on a huge strike. Management responded with a lockout - and apparently changed all our PIN codes.&lt;/p&gt;</description></item><item><title>Brunner Stocks</title><link>https://ctf.adamino.dk/brunner/pwn/2026/brunner-stocks/</link><pubDate>Fri, 21 Aug 2026 20:42:19 +0200</pubDate><guid>https://ctf.adamino.dk/brunner/pwn/2026/brunner-stocks/</guid><description>&lt;p&gt;&lt;strong&gt;Category:&lt;/strong&gt; PWN&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Easy-Medium&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Vincent&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Points:&lt;/strong&gt; 100&lt;/p&gt;
&lt;h2 id="challenge-description"&gt;Challenge Description&lt;a href="#challenge-description" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
 stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Brunnerne Inc. just released their state of the art automated stock trading algorithm. Just answer this simple survey on your investment preferences and we will handcraft a custom stock trading algorithm for you.&lt;/p&gt;</description></item><item><title>Netcat</title><link>https://ctf.adamino.dk/tools/enumeration/nc/</link><pubDate>Fri, 22 Dec 2023 00:12:28 +0100</pubDate><guid>https://ctf.adamino.dk/tools/enumeration/nc/</guid><description>&lt;h1 id="unleashing-netcats-potential-in-capture-the-flag-ctf-challenges"&gt;Unleashing Netcat&amp;rsquo;s Potential in Capture The Flag (CTF) Challenges&lt;a href="#unleashing-netcats-potential-in-capture-the-flag-ctf-challenges" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
 stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Netcat, often referred to as the &amp;ldquo;Swiss army knife&amp;rdquo; of networking, is a versatile utility that reads and writes data across network connections using the TCP/IP protocol. Its flexibility and ease of use make it an invaluable tool in Capture The Flag (CTF) challenges, where participants seek to exploit vulnerabilities and capture hidden flags. Let&amp;rsquo;s delve into the myriad ways Netcat can be utilized in CTF scenarios.&lt;/p&gt;</description></item></channel></rss>