<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Flagyard on m7eesn blog</title>
    <link>https://blog.looter.dev/categories/flagyard/</link>
    <description>Recent content in Flagyard on m7eesn blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 01 Nov 2025 01:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.looter.dev/categories/flagyard/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Subscriber – [Web] (Hard) - FlagYard</title>
      <link>https://blog.looter.dev/blog/2025-11-01-flagyard-subscriber-web-challenge/</link>
      <pubDate>Sat, 01 Nov 2025 01:00:00 +0000</pubDate>
      <guid>https://blog.looter.dev/blog/2025-11-01-flagyard-subscriber-web-challenge/</guid>
      <description>&lt;p&gt;Special thanks to &lt;strong&gt;#!SudoSqu!!d&lt;/strong&gt; for the SQLite extension loading tip!&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-challenge-overview&#34;&gt;1. Challenge Overview&lt;/h2&gt;&#xA;&lt;h3 id=&#34;challenge-description&#34;&gt;Challenge Description&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;Join the l33ts and subscribe to our innocent shop.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Subscriber is a web challenge from FlagYard featuring a Flask application with a deceptive vulnerability chain. The application offers email subscription and feedback submission functionality. At first glance, input validation and security controls appear to be in place, but multiple weaknesses combine to allow Remote Code Execution (RCE).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Txen – [Web] (Medium) - FlagYard</title>
      <link>https://blog.looter.dev/blog/2025-10-25-flagyard-txen-web-challenge/</link>
      <pubDate>Sat, 25 Oct 2025 20:40:00 +0000</pubDate>
      <guid>https://blog.looter.dev/blog/2025-10-25-flagyard-txen-web-challenge/</guid>
      <description>&lt;h2 id=&#34;1-challenge-overview&#34;&gt;1. Challenge Overview&lt;/h2&gt;&#xA;&lt;h3 id=&#34;challenge-description&#34;&gt;Challenge Description&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;We proudly introduce our latest, completely impractical file-sharing service.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Txen is a web exploitation challenge from FlagYard that presents a deceptively simple file-sharing application. Users can upload files through a straightforward endpoint. The catch? There&amp;rsquo;s an admin bot that visits user-provided URLs, and hidden somewhere in its browser session is a flag cookie we need to steal.&lt;/p&gt;&#xA;&lt;p&gt;At first glance, this seems straightforward—upload a malicious SVG, make the bot view it, exfiltrate the cookie. The reality is much trickier. The server has implemented a &lt;strong&gt;strict Content Security Policy&lt;/strong&gt; that blocks most traditional attack vectors. Our task: find a creative bypass that respects the CSP while still executing arbitrary JavaScript in the bot&amp;rsquo;s browser.&lt;/p&gt;</description>
    </item>
    <item>
      <title>OhMyQL – [Web] (Hard) - FlagYard</title>
      <link>https://blog.looter.dev/blog/2025-10-24-flagyard-ohmyql-web-challenge/</link>
      <pubDate>Fri, 24 Oct 2025 17:40:00 +0000</pubDate>
      <guid>https://blog.looter.dev/blog/2025-10-24-flagyard-ohmyql-web-challenge/</guid>
      <description>&lt;h2 id=&#34;challenge-overview&#34;&gt;Challenge Overview&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Category:&lt;/strong&gt; Web (GraphQL)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Difficulty:&lt;/strong&gt; Hard&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Prompt:&lt;/strong&gt; “Are you aware of modern web technologies?”&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Retrieve the &lt;code&gt;FLAG&lt;/code&gt; exposed by the GraphQL-enabled web service.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href=&#34;https://blog.looter.dev/downloads/flagyard-oh-my-qL.zip&#34;&gt;download link&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The service exposes a GraphQL endpoint on &lt;code&gt;/graphql&lt;/code&gt;, backed by a SQLite database and JSON Web Tokens (JWT) for authentication. A protected &lt;code&gt;/admin&lt;/code&gt; HTTP route returns the flag, but only if the caller supplies a JWT whose payload includes &lt;code&gt;{&amp;quot;flagOwner&amp;quot;: true}&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;reconnaissance--source-review&#34;&gt;Reconnaissance &amp;amp; Source Review&lt;/h2&gt;&#xA;&lt;p&gt;Static analysis of the application’s two back-end modules, &lt;code&gt;app/app/index.js&lt;/code&gt; and &lt;code&gt;app/app/database.js&lt;/code&gt;, reveals the entire execution flow:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pooking [WEB] (Medium) - FlagYard</title>
      <link>https://blog.looter.dev/blog/2025-10-23-flagyard-pooking-web-challenge/</link>
      <pubDate>Thu, 23 Oct 2025 17:00:00 +0000</pubDate>
      <guid>https://blog.looter.dev/blog/2025-10-23-flagyard-pooking-web-challenge/</guid>
      <description>&lt;h2 id=&#34;1-challenge-overview&#34;&gt;1. Challenge Overview&lt;/h2&gt;&#xA;&lt;h3 id=&#34;challenge-description&#34;&gt;Challenge Description&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;Explore the cars world with Pooking.com&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Pooking is a web challenge from flagYard, it&amp;rsquo;s about car rental portal The front page is harmless, but the API that powers it exposes several JSON endpoints:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;POST /api/forgot-password&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;POST /api/reset-password&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;POST /api/login&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;POST /api/book-car&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The challenge is to obtain customer accounts (and ultimately the flag) without knowing any credentials up front. During recon we noticed that every request body we send is forwarded directly into MongoDB. That gives us the classic NoSQL-injection playground: if we embed operators such as &lt;code&gt;$regex&lt;/code&gt;, the server evaluates them instead of treating them as plain strings.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
