<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Python on Th3B0yWh0L1v3d — Security Writeups</title>
    <link>https://th3b0ywh0l1v3d.github.io/tags/python/</link>
    <description>Recent content in Python on Th3B0yWh0L1v3d — Security Writeups</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 16 Jun 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://th3b0ywh0l1v3d.github.io/tags/python/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Amazing</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/boroctf-2026/reversing/amazing/</link>
      <pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/boroctf-2026/reversing/amazing/</guid>
      <description>Reversing a Python marshal bytecode maze generator seeded by an LCG to find the escape path.</description>
    </item>
    <item>
      <title>Flip Dat Bit — TryHackMe</title>
      <link>https://th3b0ywh0l1v3d.github.io/thm/flip-dat-bit/</link>
      <pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/thm/flip-dat-bit/</guid>
      <description>A TCP service hands you the AES-CBC ciphertext of your own input and asks you to return a ciphertext that decrypts to contain admin credentials — solved with a single-byte XOR flip.</description>
    </item>
    <item>
      <title>Fun With RSA — DalCTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/fun-with-rsa/</link>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/fun-with-rsa/</guid>
      <description>A homemade RSA-CRT signer leaks a correct and a faulted signature of the same message; gcd(s − spz, n) factors n (the Bellcore attack), while the trivial shortcut just recovers the message via s^e mod n — and the XOR &amp;lsquo;protection&amp;rsquo; undoes itself.</description>
    </item>
    <item>
      <title>someone said steg? — DalCTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/misc/someone-said-steg/</link>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/misc/someone-said-steg/</guid>
      <description>A 16-frame APNG hides one flag character per frame in the top-left pixel of each frame&amp;rsquo;s decompressed scanline data; every standard stego avenue is a dead end, so decompressing all 16 fdAT/IDAT streams and reading byte 4 of each yields the flag.</description>
    </item>
    <item>
      <title>Spoiled Cheese Pull — DalCTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/forensics/spoiled-cheese-pull/</link>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/forensics/spoiled-cheese-pull/</guid>
      <description>A &amp;lsquo;PNG&amp;rsquo; that file() calls a broken JPEG is a PNG with a forged signature and vandalized chunk names; repairing the header reveals an rMQR (rectangular Micro QR) barcode that ZXing decodes to the flag.</description>
    </item>
    <item>
      <title>All&#39;s Fair in Love and CTFs — DalCTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/alls-fair/</link>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/alls-fair/</guid>
      <description>The title &amp;lsquo;All&amp;rsquo;s Fair&amp;rsquo; points at the Playfair cipher; the grid image is the standard 5×5 key square with even columns blanked, and the ciphertext decrypts to ANYTHINGFORTHEFLAG.</description>
    </item>
    <item>
      <title>Angry Shamir — DalCTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/angry-shamir/</link>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/angry-shamir/</guid>
      <description>An RSA modulus that looks 2054-bit-strong is actually 67 × q — a tiny prime factor makes it trivially factorable (FactorDB / trial division), reconstructing the private key and decrypting the flag.</description>
    </item>
    <item>
      <title>Compression isn&#39;t encryption — DalCTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/compression-isnt-encryption/</link>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/compression-isnt-encryption/</guid>
      <description>A 192-bit Huffman stream and a frequency table; the textbook min-heap decode looks perfect (wrapped in dalctf{}, zero leftover bits) yet is wrong — matching the encoder&amp;rsquo;s tie-break policy recovers the real flag.</description>
    </item>
    <item>
      <title>LCG Seed Squared — DalCTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/lcg-seed-squared/</link>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/lcg-seed-squared/</guid>
      <description>A homemade LCG-as-cipher multiplies each flag byte by a deterministic state independent of the plaintext — the known DalCTF{ prefix recovers one state, and replaying the generator divides out the rest. The lost seed is a red herring.</description>
    </item>
    <item>
      <title>Playing with Pointers — DalCTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/playing-with-pointers/</link>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/crypto/playing-with-pointers/</guid>
      <description>A C program squares each flag byte as a float, then a &amp;lsquo;forgotten&amp;rsquo; Quake-style &lt;em&gt;(long&lt;/em&gt;)&amp;amp;y type-pun prints the raw IEEE-754 bits as integers; reversing bits→float→sqrt→char recovers the flag.</description>
    </item>
    <item>
      <title>Simple Food Notifications — GPN CTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/simple-food-notifications/</link>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/simple-food-notifications/</guid>
      <description>A Flask meal-notification SSRF whose is_global filter is defeated by abusing urllib3&amp;rsquo;s retry-driven DNS re-resolution — a global IP that hangs on port 80 (8.8.8.8) outlasts dnsmasq&amp;rsquo;s 2s cache, so the retry re-resolves to 127.0.0.1 and reaches the localhost-only /vip-meal.</description>
    </item>
    <item>
      <title>COMpetition — GPN CTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/crypto/competition/</link>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/crypto/competition/</guid>
      <description>A commit-reveal rock-paper-scissors whose non-binding sha256(r1 + message + r2) commitment lets you open one hash to any winning move and sweep all 100 rounds.</description>
    </item>
    <item>
      <title>Double Fried — GPN CTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/misc/double-fried/</link>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/misc/double-fried/</guid>
      <description>A pcap leaks a flag one character per syslog packet in scrambled order, and sorting by each packet&amp;rsquo;s Message ID field reassembles the flag.</description>
    </item>
    <item>
      <title>Fancy Food Notifications — GPN CTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/fancy-food-notifications/</link>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/fancy-food-notifications/</guid>
      <description>Chaining a weak RNG seed (258 possible HMAC keys), an SSRF token leak, a urlparse vs urllib3 parser differential, and a URL-userinfo Basic-auth override to forge a VIP JWT and reach /vip-meal as localhost.</description>
    </item>
    <item>
      <title>Königsberg Delivery Problem — GPN CTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/reversing/konigsberg-delivery-problem/</link>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/reversing/konigsberg-delivery-problem/</guid>
      <description>Reversing a 250-state control-flow-flattened automaton whose success check requires visiting every state — i.e. finding a Hamiltonian path through the transition graph.</description>
    </item>
    <item>
      <title>Restaurant Builder — GPN CTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/restaurant-builder/</link>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/restaurant-builder/</guid>
      <description>A FastAPI app builds Pydantic models from user-supplied field definitions, where each string value is eval()ed as a forward-reference annotation, yielding arbitrary code execution and flag exfiltration via the JSON schema.</description>
    </item>
  </channel>
</rss>
