{"id":1180,"date":"2026-07-06T16:34:03","date_gmt":"2026-07-06T16:34:03","guid":{"rendered":"https:\/\/tigarsec.com\/portfolio\/?p=1180"},"modified":"2026-07-06T17:28:16","modified_gmt":"2026-07-06T17:28:16","slug":"tigarsec-ctf","status":"publish","type":"post","link":"https:\/\/tigarsec.com\/portfolio\/2026\/07\/06\/tigarsec-ctf\/","title":{"rendered":"TIGARSEC CTF"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">When I started running cybersecurity competitions for students at Dudley College of Technology, I kept running into the same problem. The tools available were built for competitive hacking, not education. One scenario with ten investigation questions meant creating ten separate challenges. A student who answered seven correctly got zero credit. There was nowhere to put learning objectives. There was no per-college leaderboard for a cross-institution event. And if a blue team student needed to submit an incident response report for a judge to review, there was simply no mechanism for it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So I built TIGARSEC CTF.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"565\" src=\"https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Progress-board-1024x565.png\" alt=\"\" class=\"wp-image-1187\" srcset=\"https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Progress-board-1024x565.png 1024w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Progress-board-300x165.png 300w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Progress-board-768x423.png 768w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Progress-board-1536x847.png 1536w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Progress-board-2048x1129.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The Core Problem I Was Solving<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The fundamental gap was the challenge model. In every existing platform I evaluated, one challenge equals one flag. If you give students a PCAP file and ask them ten questions about it, you create ten challenges. The investigation narrative is lost. Progress is invisible. Partial credit is impossible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">TIGARSEC CTF changes this. One challenge card contains multiple questions, each with its own flag, point value, and optional hint. A student opens one PCAP file and works through a structured investigation question by question, each building on the last. The card shows a progress bar: 3 of 7 questions answered. Partial credit is awarded automatically for each correct answer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This maps directly to how real security investigations work.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"857\" src=\"https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Multiple-Choice-Questions-1024x857.png\" alt=\"\" class=\"wp-image-1184\" srcset=\"https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Multiple-Choice-Questions-1024x857.png 1024w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Multiple-Choice-Questions-300x251.png 300w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Multiple-Choice-Questions-768x643.png 768w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Multiple-Choice-Questions-1536x1286.png 1536w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Multiple-Choice-Questions.png 1904w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Three Question Types<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One of the things I&#8217;m most proud of is that the platform supports three fundamentally different question types, all within the same challenge card.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Flag submission is the standard, the participant finds a string and submits it. The platform validates it instantly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Multiple choice works exactly as you&#8217;d expect, the admin sets four options and the correct answer, the participant sees radio buttons. Useful for knowledge-based questions where you want to test understanding rather than investigation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Manual review is the one that didn&#8217;t exist anywhere else. The participant submits a text response and optionally attaches a file, a screenshot, a log excerpt, an incident response report. Their submission enters a judge queue. The judge reads it, approves or rejects it, awards points, and optionally leaves feedback. This is essential for purple team exercises where a blue team student needs to document their containment steps and have a human evaluate the quality of their response.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Built for Education, Not Just Competition<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Several features were designed specifically for the educational context rather than competitive CTF.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Learning objectives appear after a team fully solves a challenge. The admin writes them when creating the challenge, for example, &#8220;Understand how to analyse TCP handshake patterns, identify signs of credential stuffing in authentication logs.&#8221; Students are not just hunting flags, they are working towards documented learning outcomes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The analytics dashboard gives educators a complete picture after every event. Each question has a solve rate \u2014 the percentage of teams that answered it correctly. A 10% solve rate might mean the question is too hard or the flag format is unclear. A 95% solve rate might mean it is too easy. Everything exports as CSV for further analysis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Challenge ratings let teams rate each challenge after solving it. Combined with the analytics data, this gives organisers actionable feedback on challenge quality.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Writeup submission lets teams document how they solved each challenge after the event ends. Admins can feature the best ones, creating a knowledge base that future students can learn from.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"874\" src=\"https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Analytics-1024x874.png\" alt=\"\" class=\"wp-image-1182\" srcset=\"https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Analytics-1024x874.png 1024w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Analytics-300x256.png 300w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Analytics-768x655.png 768w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Analytics-1536x1311.png 1536w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Analytics.png 1952w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Live Scoreboard With College Grouping<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The scoreboard updates in real time using WebSockets. The moment any team submits a correct answer, every connected browser updates instantly. For a room of students watching a big screen, this creates genuine competitive energy. A toast notification appears in the corner: a team just solved a question.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For cross-institution events, the scoreboard has two views. The team leaderboard ranks individual teams. The college leaderboard aggregates all team scores by institution, showing which college is performing best overall.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"388\" src=\"https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Scoreboard-1024x388.png\" alt=\"\" class=\"wp-image-1185\" srcset=\"https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Scoreboard-1024x388.png 1024w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Scoreboard-300x114.png 300w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Scoreboard-768x291.png 768w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Scoreboard-1536x582.png 1536w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/Scoreboard-2048x776.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Purple Team Ready<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The platform extends naturally for purple team competitions. Teams identify as Red Team or Blue Team when they register. Challenge categories separate attack tasks from investigation tasks. The manual review workflow handles IR report submissions. Evidence upload supports proof of work for technical claims.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Deployment Anywhere<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The platform runs with one command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash start.sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The startup script asks whether you want LAN mode for a college network, Docker LAN for a containerised local deployment, or Docker production with Nginx and HTTPS for a live server. On first run it creates the admin account automatically. No manual database setup, no environment configuration.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"635\" src=\"https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/start-command-1024x635.png\" alt=\"\" class=\"wp-image-1186\" srcset=\"https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/start-command-1024x635.png 1024w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/start-command-300x186.png 300w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/start-command-768x476.png 768w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/start-command-1536x952.png 1536w, https:\/\/tigarsec.com\/portfolio\/wp-content\/uploads\/2026\/07\/start-command-2048x1269.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What I Learned From the First Live Deployment<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first live test was at the University of Wolverhampton. The platform itself performed correctly, authentication, challenges, scoring, and the live scoreboard all worked. What we hit was a network infrastructure problem. The university network had client isolation enabled, preventing devices from reaching the VM. We switched to a phone hotspot which worked but hit the five-device limit on iPhone. The fix is simple, a travel router creates its own isolated LAN, everyone connects to it, and the university network policy becomes irrelevant. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What&#8217;s Next<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The platform is open source on GitHub. It has been used in live events, received interest from university summer school programmes, and been presented to academic supervisors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are running a CTF for education, a college, university, corporate training programme, or community event, and you need a platform that takes the educational context seriously, TIGARSEC CTF was built for you.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/github.com\/NICANDIAS\/tigarsec-ctf\" data-type=\"link\" data-id=\"https:\/\/github.com\/NICANDIAS\/tigarsec-ctf\">GitHub<\/a><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Built by Abdulhakeem Ekun &#8211; PhD Researcher in Cybersecurity, University of Wolverhampton. TIGARSEC Innovations.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When I started running cybersecurity competitions for students at Dudley College of Technology, I kept running into the same problem. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1187,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1180","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/tigarsec.com\/portfolio\/wp-json\/wp\/v2\/posts\/1180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tigarsec.com\/portfolio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tigarsec.com\/portfolio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tigarsec.com\/portfolio\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tigarsec.com\/portfolio\/wp-json\/wp\/v2\/comments?post=1180"}],"version-history":[{"count":6,"href":"https:\/\/tigarsec.com\/portfolio\/wp-json\/wp\/v2\/posts\/1180\/revisions"}],"predecessor-version":[{"id":1193,"href":"https:\/\/tigarsec.com\/portfolio\/wp-json\/wp\/v2\/posts\/1180\/revisions\/1193"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tigarsec.com\/portfolio\/wp-json\/wp\/v2\/media\/1187"}],"wp:attachment":[{"href":"https:\/\/tigarsec.com\/portfolio\/wp-json\/wp\/v2\/media?parent=1180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tigarsec.com\/portfolio\/wp-json\/wp\/v2\/categories?post=1180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tigarsec.com\/portfolio\/wp-json\/wp\/v2\/tags?post=1180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}