<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>KITCTF</title>
    <description>We are a group of students, computer security enthusiasts and CTF players mostly from the Karlsruhe Institute of Technology. If you are interested in hacking with us, write us at team@kitctf.de or come to our weekly meetings. We meet every Thursday at 7 pm in the computer science building (50.34), room -120.</description>
    <link>https://kitctf.de/</link>
    <atom:link href="https://kitctf.de/feed.xml" rel="self" type="application/rss+xml" />
    
    
      <item>
        <title>LakeCTF 2025 – pls respond – Writeup</title>
        <description>
</description>
        <pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate>
      
        <link>https://toranm.me/post/2025-11-29-lakectf-pls-respond/</link>
      
        <guid isPermaLink="true">https://kitctf.de/writeups/lakectf-pls-respond</guid>
      </item>
    
      <item>
        <title>Intro Talks Winter 2025</title>
        <description>&lt;p&gt;Starting on the 13th of November, we will be holding introductory talks for the main categories of Capture the Flag.
We meet on Thursdays at 7pm in the CS building &lt;a href=&quot;https://www.kit.edu/campusplan/&quot;&gt;50.34&lt;/a&gt;, &lt;strong&gt;room -101&lt;/strong&gt;. Please bring a laptop if possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attention:&lt;/strong&gt; This is not our customary meeting place. We meet there for space reasons.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;13.11.25: What are CTFs? &amp;amp; Web Security
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2025-11-13-intro/intro-25-ws.pdf&quot;&gt;Intro Slides&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2025-11-13-web/web-25-ws.pdf&quot;&gt;Web Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;20.11.25: Reverse Engineering
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2025-11-20-rev/rev-25-ws.pdf&quot;&gt;Rev Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;27.11.25: Binary Exploitation
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2025-10-17-pwnintro/pwn-25-ws.pdf&quot;&gt;Pwn Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;04.12.25: Cryptography
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2025-12-04-cryptointro/crypto-25-ws.pdf&quot;&gt;Crypto Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Slides will be published here after the talks.&lt;/p&gt;
</description>
        <pubDate>Fri, 17 Oct 2025 00:00:00 +0000</pubDate>
      
        <link>https://kitctf.de/intro/</link>
      
        <guid isPermaLink="true">https://kitctf.de/intro/</guid>
      </item>
    
      <item>
        <title>Report: Flag Sharing Incidents During GPN CTF 2025</title>
        <description>&lt;p&gt;&lt;img src=&quot;/imgs/gpnctf23-flagshare-meme.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;background&quot;&gt;Background&lt;/h2&gt;

&lt;p&gt;Last year we organized GPN CTF 2024. During the event we received multiple reports from participants via Discord stating they had been approached by others asking for flags. In most cases, we responded by handing out an invalid but realistic fake flag. We later used these flags to identify teams engaging in flag-sharing.&lt;/p&gt;

&lt;p&gt;Given the frequency of these incidents, we decided to implement &lt;strong&gt;dynamic, team-specific flags&lt;/strong&gt; for GPN CTF 2025.&lt;/p&gt;

&lt;h2 id=&quot;dynamic-flags-in-2025&quot;&gt;Dynamic Flags in 2025&lt;/h2&gt;

&lt;p&gt;For the 2025 event, most challenges featured &lt;strong&gt;team-specific dynamic flags&lt;/strong&gt;, generated to appear similar at first glance, with differences in casing and typical leet-speak substitutions.&lt;/p&gt;

&lt;p&gt;A team was assigned a flag when they either spawned their first instance of the challenge or downloaded its handout.&lt;/p&gt;

&lt;p&gt;Throughout the event, we were contacted twice by teams who had been asked for a flag and handed out a wrong one – both of which allowed us to identify the submitting team.&lt;/p&gt;

&lt;p&gt;To aid detection, we &lt;strong&gt;logged every flag submission&lt;/strong&gt; in our CTF system’s database, including timestamps, submitting teams, and users.&lt;/p&gt;

&lt;p&gt;After the event, we queried the database for all cases where a team submitted a &lt;strong&gt;valid flag of another team for a challenge they had not yet solved&lt;/strong&gt;. This yielded &lt;strong&gt;53 incidents&lt;/strong&gt;, excluding submissions of known fake flags.
In analyzing these incidents, we also reviewed instances where shared flags were submitted after the team’s correct submission.&lt;/p&gt;

&lt;h2 id=&quot;investigation-summary&quot;&gt;Investigation Summary&lt;/h2&gt;

&lt;p&gt;In total, we reviewed &lt;strong&gt;53 incidents&lt;/strong&gt;, plus an additional &lt;strong&gt;9 cases&lt;/strong&gt; involving known fake flags.&lt;/p&gt;

&lt;p&gt;For each incident, we analyzed team activities, submission timings, and flag ownership:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;7 incidents&lt;/strong&gt; had plausible non-malicious explanations. While still technically detected correctly, these were not pursued further.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;3 teams&lt;/strong&gt; were directly linked to fake flag submissions, providing &lt;strong&gt;conclusive evidence of flag-sharing&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2 teams&lt;/strong&gt; were observed swapping flags shortly before the competition ended.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In many cases, the submitting team had &lt;strong&gt;never spawned an instance for the challenge or downloaded the handout&lt;/strong&gt;, making it clear that they obtained the flag externally.&lt;/p&gt;

&lt;p&gt;Typically, &lt;strong&gt;only individual players within teams&lt;/strong&gt; were involved in these incidents.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;involved-teams-and-incidents&quot;&gt;Involved Teams and Incidents&lt;/h2&gt;
&lt;p&gt;All times are provided in UTC+2.&lt;/p&gt;

&lt;h3 id=&quot;0bug&quot;&gt;0bug&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted a flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nasa&lt;/code&gt; originating from &lt;strong&gt;NOVA&lt;/strong&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-21 09:53:25&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;0dayfreddy&quot;&gt;0day@freddy&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Their flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hinting&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mini-dsp&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;the-old-way&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;free-parking-network&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-2&lt;/code&gt; were later submitted by &lt;strong&gt;FPTU Ethical Hacker Club&lt;/strong&gt; during the final 6 hours of the competition.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;0xfun&quot;&gt;0xfun&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted a flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;the-old-way&lt;/code&gt; belonging to &lt;strong&gt;NOVA&lt;/strong&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-21 09:47:11&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;4o4nullers&quot;&gt;4O4NULLERS&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted a &lt;strong&gt;previously-known fake flag&lt;/strong&gt; for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;real-christmas&lt;/code&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-20 20:22:18&lt;/code&gt;, as well as one for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-1&lt;/code&gt; between &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-20 13:27:52&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-20 13:57:28&lt;/code&gt; 4 times.&lt;/li&gt;
  &lt;li&gt;Their flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-1&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-2&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;the-old-way&lt;/code&gt; were later submitted by &lt;strong&gt;ACSS Override&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;acss-override&quot;&gt;ACSS Override&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-1&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-2&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;the-old-way&lt;/code&gt; that belonged to &lt;strong&gt;4O4NULLERS&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;band-0xf-br3ach3rs&quot;&gt;Band 0xF Br3ach3rs&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;check-this-out&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;image-contest&lt;/code&gt; belonging to &lt;strong&gt;Nc{Cat}&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;bigboys&quot;&gt;BigBoys&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Their flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;broccoli&lt;/code&gt; was submitted by &lt;strong&gt;seagull&lt;/strong&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-20 18:29:02&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;fptu-ethical-hacker-club&quot;&gt;FPTU Ethical Hacker Club&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hinting&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mini-dsp&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;the-old-way&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;free-parking-network&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-2&lt;/code&gt; belonging to &lt;strong&gt;0day@freddy&lt;/strong&gt; during the competition’s final 6 hours.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;ganesh&quot;&gt;Ganesh&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted flags from &lt;strong&gt;xupa curintia&lt;/strong&gt; for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;the-old-way&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hinting&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;holeinbottle&quot;&gt;HoleInBottle&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Their flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-3&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-4&lt;/code&gt; were submitted by &lt;strong&gt;ncodeks&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Submitted a flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hinting&lt;/code&gt; that belonged to &lt;strong&gt;ncodeks&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;ialone&quot;&gt;Ialone&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Their flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mini-dsp&lt;/code&gt; was submitted by &lt;strong&gt;omtose phellack&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;mindcrafters&quot;&gt;MindCrafters&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Their flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mini-dsp&lt;/code&gt; was submitted by &lt;strong&gt;NOVA&lt;/strong&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-20 14:04:23&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;nova&quot;&gt;NOVA&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Solved &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nasa&lt;/code&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-21 09:41:17&lt;/code&gt;; their flag later appeared with &lt;strong&gt;0bug&lt;/strong&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-21 09:53:25&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Submitted &lt;strong&gt;fake flags&lt;/strong&gt; for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;real-christmas&lt;/code&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-20 20:17:05&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;20:24:35&lt;/code&gt;, with an intermediate attempt by &lt;strong&gt;4O4NULLERS&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Submitted &lt;strong&gt;MindCrafters’&lt;/strong&gt; flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mini-dsp&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Their flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;the-old-way&lt;/code&gt; was later submitted by &lt;strong&gt;0xfun&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;nccat&quot;&gt;Nc{Cat}&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Their flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;check-this-out&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;image-contest&lt;/code&gt; were submitted by &lt;strong&gt;Band 0xF Br3ach3rs&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Submitted flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;restricted-oracle&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;free-parking-network&lt;/code&gt; belonging to &lt;strong&gt;SNI&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;puupuu&quot;&gt;PuuPuu&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;no-nc&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;note-editor&lt;/code&gt; belonging to &lt;strong&gt;RaptX&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;raptx&quot;&gt;RaptX&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Their flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;no-nc&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;note-editor&lt;/code&gt; were submitted by &lt;strong&gt;PuuPuu&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Their &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;restricted-oracle&lt;/code&gt; flag was submitted by &lt;strong&gt;momo&lt;/strong&gt; and &lt;strong&gt;capablanca&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Submitted a flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-1&lt;/code&gt; belonging to &lt;strong&gt;PuuPuu&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;sni&quot;&gt;SNI&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Their flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;restricted-oracle&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;free-parking-network&lt;/code&gt; were submitted by &lt;strong&gt;Nc{Cat}&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;seagull&quot;&gt;Seagull&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted a flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;broccoli&lt;/code&gt; belonging to &lt;strong&gt;BigBoys&lt;/strong&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-20 18:29:02&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;trojeun&quot;&gt;TroJeun&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted a flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;free-parking-network&lt;/code&gt; belonging to &lt;strong&gt;Vuln3ra&lt;/strong&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-20 23:39:18&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;vuln3ra&quot;&gt;Vuln3ra&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Their &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;free-parking-network&lt;/code&gt; flag was submitted by &lt;strong&gt;TroJeun&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;zerolight&quot;&gt;Zerolight&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;One player was active and submitted flags on both &lt;strong&gt;Zerolight&lt;/strong&gt; and &lt;strong&gt;kBxAc&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;A known &lt;strong&gt;fake flag&lt;/strong&gt; was also submitted for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-2&lt;/code&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-20 13:28:51&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;capablanca&quot;&gt;capablanca&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted a flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;restricted-oracle&lt;/code&gt; belonging to &lt;strong&gt;RaptX&lt;/strong&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-21 23:59:02&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;kbxac&quot;&gt;kBxAc&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;One player participated and submitted flags on both &lt;strong&gt;Zerolight&lt;/strong&gt; and &lt;strong&gt;kBxAc&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;momo&quot;&gt;momo&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted a flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;restricted-oracle&lt;/code&gt; belonging to &lt;strong&gt;RaptX&lt;/strong&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-21 23:54:58&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;ncodeks&quot;&gt;ncodeks&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted &lt;strong&gt;HoleInBottle’s&lt;/strong&gt; flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-3&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;intro-web-4&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Their flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hinting&lt;/code&gt; was submitted by &lt;strong&gt;HoleInBottle&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;omtose-phellack&quot;&gt;omtose phellack&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Submitted a flag for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mini-dsp&lt;/code&gt; belonging to &lt;strong&gt;Ialone&lt;/strong&gt; at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2025-06-21 12:01:53&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;xupa-curintia&quot;&gt;xupa curintia&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Their flags for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;the-old-way&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hinting&lt;/code&gt; were submitted by &lt;strong&gt;Ganesh&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;graph-of-shared-flags&quot;&gt;Graph of Shared Flags&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/imgs/gpnctf23-flagshare-graph.svg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;statements&quot;&gt;Statements&lt;/h2&gt;

&lt;p&gt;We asked all involved teams to open a ticket in order to investigate the incidents and clear up misconceptions. Additionally, we allowed them to provide a statement in text form to provide their perspective on the situation. We publish those statements below.&lt;/p&gt;

&lt;h3 id=&quot;capablanca-1&quot;&gt;capablanca&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;During the competition, we opened three support tickets requesting the removal of a newly joined member after observing that he was asking for solutions and appeared to be seeking them on behalf of another team. This behavior is unethical, violates competition rules, and is not tolerated by our team. Although the member was not removed from the CTF platform, we promptly removed him from our Team server. He submitted a flag for a challenge we had already solved while continuing to request additional solutions on private messages, requests we explicitly denied.&lt;/p&gt;

  &lt;p&gt;A second member, also participating with our team for the first time, submitted a flag for a different challenge. He provided a plausible explanation of how he obtained it, and based on the information available at the time, the Captain chose to trust him. At no point did he demonstrate any intention to share or request flags. However, after the announcement of the flag sharing, when we followed up for further clarification, he gave an explanation we were unable to verify. 
Both of these individuals were removed and banned from the team.&lt;/p&gt;

  &lt;p&gt;We acted in good faith throughout the competition and took proactive steps to maintain its integrity. As well as collaborated to the investigation when we were told about the irregularities.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;kbxac-1&quot;&gt;kBxAC&lt;/h3&gt;
&lt;blockquote&gt;
  &lt;p&gt;Not much to report Just we were not aware our team mate was playing from another team we got to only when you told us just as I failed as Captain and a good teammate and We team kBxAc promised that this will not happen again in any of the ctf and once again we are sorry this happened&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;nccat-1&quot;&gt;Nc{Cat}&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Its regrettable that flag sharing did happen under our team, but we were not at all aware about this. One member was actively part of both SNI and Nc{Cat}, and another member was identified to be leading his own personal team for ctftime points. The guilty members were banned from the team as soon as we got to know about this. We will be doing a more careful background check of current and future members to prevent this from happening again.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;nova-1&quot;&gt;NOVA&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Official Statement from Team NOVA Regarding Flag Sharing Incident&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;We, &lt;strong&gt;Team NOVA&lt;/strong&gt;, would like to formally present our position regarding the recent flag sharing incident during GPNCTF:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;
      &lt;p&gt;&lt;strong&gt;Pre-existing Suspicions&lt;/strong&gt;:Prior to the event, we had ongoing concerns about a specific individual, dev_fire, being associated with multiple teams and potentially compromising our internal communications.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
      &lt;p&gt;&lt;strong&gt;Controlled Integrity Test (Poisoned Flags)&lt;/strong&gt;:To validate these concerns, we strategically shared fake, invalid flags within our private team space during the competition. These flags were intentionally crafted to detect potential leaks and were never intended for legitimate submission.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
      &lt;p&gt;&lt;strong&gt;Immediate and Transparent Reporting&lt;/strong&gt;:&lt;strong&gt;We opened an official ticket during the CTF itself&lt;/strong&gt; to transparently report this situation and provide full context for any unusual flag activity that might originate from our team. This was done to demonstrate good faith and maintain the competition’s integrity.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
      &lt;p&gt;&lt;strong&gt;Acknowledgement of Process Oversight&lt;/strong&gt;:In hindsight, we recognize that conducting such an internal test without prior coordination with event organizers was not ideal. Our intention was solely to safeguard competition integrity, but we acknowledge that our method conflicted with established rules.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
      &lt;p&gt;&lt;strong&gt;Respect for the Organizers’ Decision&lt;/strong&gt;:While we regret the disqualification outcome, we fully respect the organizers’ commitment to ensuring fairness across all teams. We appreciate the opportunity to share our perspective and clarify that at no point were valid, legitimate flags shared or compromised by our actions.&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;&lt;strong&gt;Commitment to Future Integrity&lt;/strong&gt;:Moving forward, Team NOVA will:&lt;/p&gt;

  &lt;p&gt;Coordinate directly with organizers before competitions if internal leak concerns arise.&lt;/p&gt;

  &lt;p&gt;Implement stricter internal controls, including verified-only flag channels and comprehensive membership audits.&lt;/p&gt;

  &lt;p&gt;We appreciate the organizers’ recognition of our cooperation and respectfully request that our proactive approach, including the fact that we opened a ticket during the CTF itself, be noted in the final report to help preserve the integrity and reputation of Team NOVA.&lt;/p&gt;

  &lt;p&gt;Thank you for your time and understanding.&lt;/p&gt;

  &lt;p&gt;&lt;strong&gt;Team NOVA&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;raptx-1&quot;&gt;RaptX&lt;/h3&gt;
&lt;p&gt;RaptX provided their statement as a PDF:
&lt;a href=&quot;/files/gpnctf-23/statement-raptx.pdf&quot;&gt;statement.pdf&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;trojeun-1&quot;&gt;TroJeun&lt;/h3&gt;
&lt;blockquote&gt;
  &lt;p&gt;one of our players played the CTF for another team and submitted a flag from another team without our knowledge, the player who did it is now kicked out of the team, and it was decided that the credentials of the CTF being played should never be shared in a public channel but in a private channel for the specific CTF&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate>
      
        <link>https://kitctf.de/gpnctf-23/gpn-ctf-flagshare</link>
      
        <guid isPermaLink="true">https://kitctf.de/gpnctf-23/gpn-ctf-flagshare</guid>
      </item>
    
      <item>
        <title>RealworldCTF 2024 – Protected-by-Java-SE – Writeup</title>
        <description>
</description>
        <pubDate>Wed, 07 May 2025 00:00:00 +0000</pubDate>
      
        <link>https://intrigus.org/research/2025/05/07/realworld-ctf-2024-using-codeql-to-find-bugs-in-codeql/</link>
      
        <guid isPermaLink="true">https://kitctf.de/writeups/realworld-ctf-2024-using-codeql-to-find-bugs-in-codeql</guid>
      </item>
    
      <item>
        <title>Intro Talks Summer 2025</title>
        <description>&lt;p&gt;Starting on the 08th of May, we will be holding introductory talks for the main categories of Capture the Flag.
We meet on Thursdays at 7pm in the CS building &lt;a href=&quot;https://www.kit.edu/campusplan/&quot;&gt;50.34&lt;/a&gt;, &lt;strong&gt;room -101&lt;/strong&gt;. Please bring a laptop if possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attention:&lt;/strong&gt; This is not our customary meeting place. We meet there for space reasons.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;08.05.25: What are CTFs? &amp;amp; Web Security
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2025-05-08-intro/intro-25-ss.pdf&quot;&gt;Intro Slides&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2025-05-08-web/web-25-ss.pdf&quot;&gt;Web Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;15.05.25: Reverse Engineering
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2025-05-15-rev/rev-25-ss.pdf&quot;&gt;Rev Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;22.05.25: Binary Exploitation
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2025-05-22-pwn/pwn-25-ss.pdf&quot;&gt;Pwn Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;05.06.25: Cryptography &lt;strong&gt;(room -102)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Slides will be published here after the talks.&lt;/p&gt;
</description>
        <pubDate>Wed, 23 Apr 2025 00:00:00 +0000</pubDate>
      
        <link>https://kitctf.de/intro-ss25/</link>
      
        <guid isPermaLink="true">https://kitctf.de/intro-ss25/</guid>
      </item>
    
      <item>
        <title>Talk: Windows User-space Emulation</title>
        <description>&lt;p&gt;Deep dive into Windows user-space emulation and why it’s cool.&lt;/p&gt;

&lt;p&gt;The slides can be found &lt;a href=&quot;/talks/2025-02-13-windows-emulation/windows-emulation-slides.pdf&quot;&gt;here&lt;/a&gt;. The talk was held on the 13th of February 2025.&lt;/p&gt;
</description>
        <pubDate>Fri, 14 Mar 2025 00:00:00 +0000</pubDate>
      
        <link>https://kitctf.de/learning/windows-emulation</link>
      
        <guid isPermaLink="true">https://kitctf.de/learning/windows-emulation</guid>
      </item>
    
      <item>
        <title>Intro Talks WS 2024/2025</title>
        <description>&lt;p&gt;Starting on the 07th of November, we will be holding introductory talks for the main categories of Capture the Flag.
We meet on Thursdays at 7pm in the CS building &lt;a href=&quot;https://www.kit.edu/campusplan/&quot;&gt;50.34&lt;/a&gt;, &lt;strong&gt;room -101&lt;/strong&gt;. Please bring a laptop if possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attention:&lt;/strong&gt; This is not our customary meeting place. We meet there for space reasons.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;07.11.24: What are CTFs? &amp;amp; Web Security
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2024-11-07-intro/intro-slides.pdf&quot;&gt;Intro Slides&lt;/a&gt;, &lt;a href=&quot;/talks/2024-11-07-web/web-slides.pdf&quot;&gt;Web Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;14.11.24: Reverse Engineering
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2024-11-14-revintro/rev-slides.pdf&quot;&gt;Rev Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;21.11.24: Binary Exploitation
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2024-11-21-pwnintro/pwn-slides.pdf&quot;&gt;Pwn Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;28.11.24: Cryptography
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2024-11-28-cryptointro/crypto-slides.pdf&quot;&gt;Crypto Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Slides will be published here after the talks.&lt;/p&gt;
</description>
        <pubDate>Fri, 11 Oct 2024 00:00:00 +0000</pubDate>
      
        <link>https://kitctf.de/intro-ws2425/</link>
      
        <guid isPermaLink="true">https://kitctf.de/intro-ws2425/</guid>
      </item>
    
      <item>
        <title>GPNCTF: Trapdoor author writeup</title>
        <description>&lt;p&gt;For the GPNCTF I wrote a crypto challenge. It was called Trapdoor and at least I thought about using advanced mathematics to solve it.&lt;/p&gt;

&lt;p&gt;This is not your typical post where I show you my code and tell you why you are stupid and should start using Sage (you should, but that is not the point).
I will explain some ideas and mathematics I looked at when writing the challenge and when solving it myself. Be warned, it’s certainly not the most efficient or simplest solution.
Also, I stopped when it worked and did not dig any further, so there may be some bugs and oversights that just work somehow.
The relevant part for now was as follows:
The challenge looked like this:&lt;/p&gt;
&lt;div class=&quot;language-py highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
    &lt;span class=&quot;n&quot;&gt;flagFieldElem&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;^&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;expo&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;#all output below here is intended for solve
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Field Base:&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;K&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;base&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;order&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Field Expo:&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;K&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;order&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;K&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;base&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;order&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;NumElems:&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;K&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cardinality&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;gen:&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;K&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;modulus&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;minpoly&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;flagFieldElem&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;minpoly&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Hash is:&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;minpoly&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;EVAL_VALUE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The flag was encoded as an integer and a group element was generated by computing \(a^{flag}\) in a Galois field. 
But what is a Galois field, how does it work, and how does it relate to polynomials?&lt;/p&gt;
&lt;h3 id=&quot;why-more-math&quot;&gt;Why more math&lt;/h3&gt;
&lt;p&gt;Obviously because it is fun. Joking aside, you probably know that \(^{\mathbb{Z}}/_{p\mathbb{Z}}\) is a field if p is a prime. A field in this context means that for all elements (except 0) there is not only an additive but also a multiplicative inverse. And you may have heard your professor or your friends talking about the fact that there are finite fields for every power of a prime number. But when you tried to construct such a field with, say, 25 elements, you (hopefully) failed because you simply could not find the “right way” to define your operations: 
Consider \(^{\mathbb{Z}}/_{2\mathbb{Z}} \times ^{\mathbb{Z}}/_{5\mathbb{Z}}\). What would your \(\mathbb{1}\) element be? \((1,0)\) or \((1,1)\), neither will work (if you don’t believe me, try to find out where, it’s a great exercise).&lt;/p&gt;

&lt;h4 id=&quot;polynomials-for-the-win&quot;&gt;Polynomials for the win&lt;/h4&gt;
&lt;p&gt;We won’t worry too much about how to construct such fields in detail. The only thing we need to know for now is that we construct such fields L as extensions of other fields K. (Written \(L | K\))
This means that we start with a known field K (e.g. GF(5)) and then add new elements, for simplicity say we add only one element \(a\), more formally we add elements and then consider the smallest field containing the old field and the new elements we added.
The incredibly useful thing (at least for computer people) is that 
the new field is then (at least in our case) equivalent to \(^{K[X]}/_{(m_a)}\), where \(m_a \in K[X]\) is the minimal polynomial of \(a\) in K[X]. The latter just means that all coefficients of \(m_a\) are in K (and that it is normed, but we don’t care about that) and \(m_a(a)=0\) and the degree of m is minimal.
Cool, now we have a way to represent such finite fields as polynomials modulo another polynomial.&lt;/p&gt;

&lt;h3 id=&quot;how-is-this-related-to-the-challenge-&quot;&gt;How is this related to the challenge ??&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;To be very “wrong” and imprecise for a moment: The thing is, we have seen that field extensions are just a fancy way of talking about polynomials and long division. Polynomials are vector spaces, and some vector space things can therefore also be done using field extensions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Consider the map for an \(a \in L\):
\(L \rightarrow L |K \ \
x \mapsto x \cdot a\)
and look at the determinant of this map, this is called the field map \(N_{L|K}: L \rightarrow k,\ \ a \mapsto N_{L|K}(a)\).
This map has many cool properties like being multiplicative (i.e. a homomorphism of the unit groups) and if you consider an element \(a \in L\) with \(m_a = X^n \cdot \alpha_n + ... + \alpha_0\) then
\(N_{L|K}(a) = \pm \alpha_0\) the sign depending on the degree of the extension and the degree of the minimal polynomial. This was a step I had in mind when I created the challenge.
Using this, and the fact that we have multiple instances, we can reduce the key space enough to iterate the remaining possibilities to find the flag.&lt;/p&gt;

&lt;h3 id=&quot;iterating-the-possible-values&quot;&gt;Iterating the possible values&lt;/h3&gt;
&lt;p&gt;Galois Theory tells us even more (this was the initial starting point for this challenge…): 
\(N_{L|K}(a) = \Pi_{\sigma \in GAL(L|K)} \sigma(a)\). To explain what Galois groups are would go too far but for finite fields we know that they are generated by Frobenius homomorphisms. This means that they are generated by \(x \mapsto x^p\) with p being the characteristic. Thus the norm boils down to \(N_{L|K}(a) = a^\alpha\) for the right \(\alpha\) which can simply be calculated or just be looked up on e.g. wikipedia. Thinking about this a bit longer (you want to get yourself familiar with the concept of primitive roots) we find out that solutions to equations of the form \(y = x^\alpha\) can be altered by the unit group. More formally, if \(\omega\) is a solution to the equation above and \(\phi^\alpha=1\) then \(\omega \cdot \phi\) is indeed also a solution. Personally I am not totally sure about the number of “nontrivial” solutions (or any other detail), so you might want to look this up for peace of mind.&lt;/p&gt;

&lt;p&gt;If we now go back to the challenge we get that for one instance the possible values for the flag are a line. If we took two instances and they would intersect we would have found the flag. Sadly they don’t (again I don’t remember that part of the solve that well, so it is left as an exercise).
But this essentially means we can combine multiple instances to get an iterator that skips more elements. This construction is basically a kind of Chinese remainder theorem.
My solve script especially the last part is hideous, so I won’t publish it, but I have included the challenge handout &lt;a href=&quot;/files/gpnctf-22/trapdoor.tar.gz&quot;&gt;here&lt;/a&gt; so feel free to try to solve it yourself.&lt;/p&gt;

&lt;h3 id=&quot;related-resources&quot;&gt;Related resources&lt;/h3&gt;
&lt;p&gt;If you want to know more about Galois theory, consider visiting a university course if you have the chance, otherwise there are many great online resources and books, such as &lt;a href=&quot;https://www.maths.ed.ac.uk/~tl/gt/gt.pdf&quot;&gt;this&lt;/a&gt; (be warned that most of Galois theory is not about finite fields), but you will probably want to start with an introduction to groups and algebra in general first.&lt;/p&gt;
</description>
        <pubDate>Sat, 01 Jun 2024 00:00:00 +0000</pubDate>
      
        <link>https://kitctf.de/writeups/galois</link>
      
        <guid isPermaLink="true">https://kitctf.de/writeups/galois</guid>
      </item>
    
      <item>
        <title>Intro Talks 2024</title>
        <description>&lt;p&gt;Starting on the 25th of April, we will be holding introductory talks for the main categories of Capture the Flag.
We meet on Thursdays at 7pm in the CS building &lt;a href=&quot;https://www.kit.edu/campusplan/&quot;&gt;50.34&lt;/a&gt;, &lt;strong&gt;room -101&lt;/strong&gt;. Please bring a laptop if possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attention:&lt;/strong&gt; This is not our customary meeting place. We meet there for space reasons.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;25.04.24: What are CTFs? &amp;amp; Web Security
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2024-04-25-intro/slides.pdf&quot;&gt;Intro Slides&lt;/a&gt;, &lt;a href=&quot;/talks/2024-04-25-webintro/slides.pdf&quot;&gt;Web Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;02.05.24: Reverse Engineering
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2024-05-02-revintro/slides.pdf&quot;&gt;Rev Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;16.05.24: Binary Exploitation (room -10&lt;strong&gt;2&lt;/strong&gt;)
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2024-05-16-pwnintro/slides.pdf&quot;&gt;Pwn Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;06.06.24: Cryptography
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;/talks/2024-06-06-cryptointro/slides.pdf&quot;&gt;Crypto Slides&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 11 Apr 2024 00:00:00 +0000</pubDate>
      
        <link>https://kitctf.de/intro-ss24/</link>
      
        <guid isPermaLink="true">https://kitctf.de/intro-ss24/</guid>
      </item>
    
      <item>
        <title>KalmarCTF 2024: Symmetry writeup</title>
        <description>
</description>
        <pubDate>Fri, 29 Mar 2024 00:00:00 +0000</pubDate>
      
        <link>https://ik0ri4n.de/kalmarctf-24-symmetry</link>
      
        <guid isPermaLink="true">https://kitctf.de/writeups/kalmarctf24-symmetry</guid>
      </item>
    
  </channel>
</rss>
