<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Glibc on Adamino CTF Writeups</title><link>https://ctf.adamino.dk/tags/glibc/</link><description>Recent content in Glibc 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/glibc/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>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></channel></rss>