<?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>SSRF on Th3B0yWh0L1v3d — Security Writeups</title>
    <link>https://th3b0ywh0l1v3d.github.io/tags/ssrf/</link>
    <description>Recent content in SSRF 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/ssrf/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Boro Senpai 2</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/boroctf-2026/web/boro-senpai-2/</link>
      <pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/boroctf-2026/web/boro-senpai-2/</guid>
      <description>Part 2 of the Boro Senpai series: SSRF via Docker internal hostname.</description>
    </item>
    <item>
      <title>Kobeni&#39;s Dashboard</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/boroctf-2026/web/kobenis-dashboard/</link>
      <pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/boroctf-2026/web/kobenis-dashboard/</guid>
      <description>Abusing ImageMagick&amp;rsquo;s SVG text: pseudo-coder to read the flag file via server-side image conversion.</description>
    </item>
    <item>
      <title>Neural Sync Portal</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/boroctf-2026/web/neural-sync-portal/</link>
      <pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/boroctf-2026/web/neural-sync-portal/</guid>
      <description>SSRF via Docker internal hostname to reach the metadata service and retrieve the flag.</description>
    </item>
    <item>
      <title>El Bandito — TryHackMe</title>
      <link>https://th3b0ywh0l1v3d.github.io/thm/el-bandito/</link>
      <pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/thm/el-bandito/</guid>
      <description>An exposed Spring Boot Actuator plus an nginx /.;/ path-ACL bypass leaks admin creds and the first flag; an HTTP/2 H2.CL desync then captures an internal bot&amp;rsquo;s request, stealing its flag cookie.</description>
    </item>
    <item>
      <title>Plant Photographer — TryHackMe</title>
      <link>https://th3b0ywh0l1v3d.github.io/thm/plant-photographer/</link>
      <pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/thm/plant-photographer/</guid>
      <description>SSRF via a pycurl download endpoint chains into file:// LFI, Werkzeug debug PIN cracking, and full RCE on a Dockerised Flask app.</description>
    </item>
    <item>
      <title>Robots — TryHackMe</title>
      <link>https://th3b0ywh0l1v3d.github.io/thm/robots/</link>
      <pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/thm/robots/</guid>
      <description>XSS in a registration form exfiltrates the admin&amp;rsquo;s session cookie; RFI via the admin URL-tester gives www-data code execution; double-MD5 cracking yields SSH access, and a sudo apache2 logging trick writes a root SSH key.</description>
    </item>
    <item>
      <title>Bouncer — DalCTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/web/bouncer/</link>
      <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/dalctf-2026/web/bouncer/</guid>
      <description>A read-only anonymous FTP gateway turns out to be a Redis health-check proxy; abusing the PORT command for an FTP bounce plus a newline-smuggled RETR inline command yields a bidirectional Redis relay that scans the subnet and reads the flag.</description>
    </item>
    <item>
      <title>DEAD VAULT — Zer0d4yh31st CTF</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/zer0d4yh31st/web/dead-vault/</link>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/zer0d4yh31st/web/dead-vault/</guid>
      <description>A Money Heist–themed Flask app hides a flag split into three fragments behind a server-side URL fetcher, bypassed with a DNS-based SSRF to reach the internal API and a privileged file-read endpoint.</description>
    </item>
    <item>
      <title>SecretPickle — GPN CTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/secretpickle/</link>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/secretpickle/</guid>
      <description>A Pyodide client serializes requests with pickle obfuscated by a hardcoded XOR key, letting the server pickle.loads attacker data for unauthenticated root RCE, then hooking the live handler to capture the adminbot&amp;rsquo;s plaintext login password.</description>
    </item>
    <item>
      <title>Secure Secretpickle — GPN CTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/secure-secretpickle/</link>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/secure-secretpickle/</guid>
      <description>The hardened secretpickle runs pickle.loads in a write-only seccomp sandbox, but the adminbot action visits an attacker URL with no scheme check and returns a screenshot, so file:///flag.txt renders the flag into the image.</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>Spaetzle — GPN CTF 2026</title>
      <link>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/spaetzle/</link>
      <pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://th3b0ywh0l1v3d.github.io/ctf/gpn-ctf-2026/web/spaetzle/</guid>
      <description>An MD5-only oracle over arbitrary paths is turned into a full file disclosure using the error-based PHP filter-chain oracle to leak /flag byte-by-byte.</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>
  </channel>
</rss>
