<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cyber Security on Skelmis</title>
    <link>https://skelmis.co.nz/tags/cyber-security/</link>
    <description>Recent content in Cyber Security on Skelmis</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Wed, 31 Dec 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://skelmis.co.nz/tags/cyber-security/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>C# Path&#39;ing May Not Work As You Expect</title>
      <link>https://skelmis.co.nz/posts/c_sharp-pathing/</link>
      <pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://skelmis.co.nz/posts/c_sharp-pathing/</guid>
      <description>Background Link to heading During a security review this year I stumbled across some C# that at a glance looked fine. Turns out however it actually contained path traversal which was by design (of the language). After asking some of my friends who are familiar with C# they also went &amp;lsquo;huh thats weird&amp;rsquo; so I figured I&amp;rsquo;d make this and share with you all.&#xA;TLDR Link to heading If you are reviewing C# and come across Path.</description>
    </item>
    <item>
      <title>CVE-2024-41808 - Unauthenticated log injection to account takeover</title>
      <link>https://skelmis.co.nz/posts/cve-2024-41808/</link>
      <pubDate>Mon, 05 Aug 2024 00:00:00 +0000</pubDate>
      <guid>https://skelmis.co.nz/posts/cve-2024-41808/</guid>
      <description>This is a cross post from a research group blog post I made which can be found here&#xA;OpenObserve vulnerability chain Link to heading TL;DR - OpenObserve deployments using version 0.9.1 or lower are vulnerable to the following privilege escalation chain:&#xA;A malicious user submits logs via a service which sends logs to an OpenObserve instance. These logs contain malicious content. A site user attempts to create a dashboard, using the logging field containing malicious input.</description>
    </item>
    <item>
      <title>PNG to RCE: Faking files to bypass server side validation</title>
      <link>https://skelmis.co.nz/posts/file-faking/</link>
      <pubDate>Sat, 20 Jul 2024 00:00:00 +0000</pubDate>
      <guid>https://skelmis.co.nz/posts/file-faking/</guid>
      <description>Recently during some personal research I came across a very interesting avenue for remote code execution (RCE). The program let you provide one argument to the command line before appending some flags after. Now it wasn&amp;rsquo;t &amp;ldquo;one&amp;rdquo; escapable argument, but was actually only one argument much to my disappointment.&#xA;Due to this, we are unlikely to LOLBIN our way out of the situation. So instead, let&amp;rsquo;s talk about a tale of bypassing theoretical file validation within some file upload and how to convince Linux to then run arbitrary code via said file when the rough following command is typed into a shell!</description>
    </item>
    <item>
      <title>CVE-2024-37893 - MFA bypass in OAuth flow may lead to compromise of Firefly III data</title>
      <link>https://skelmis.co.nz/posts/cve-2024-37893/</link>
      <pubDate>Tue, 18 Jun 2024 00:00:00 +0000</pubDate>
      <guid>https://skelmis.co.nz/posts/cve-2024-37893/</guid>
      <description>TL;DR - Even with MFA enabled on firefly III versions v6.1.16 and lower, an attacker is able to authorize OAuth applications against user accounts using only a username and password.&#xA;Advisory can be found here.&#xA;Firefly III is a personal finance manager which is both free and open source for anyone to use. After a recommendation from a colleague, I decided to spin up a version for myself.&#xA;I configured my Firefly account with a strong password + MFA.</description>
    </item>
    <item>
      <title>Fun with USB rubber duckies</title>
      <link>https://skelmis.co.nz/posts/rubber-duckys/</link>
      <pubDate>Fri, 06 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://skelmis.co.nz/posts/rubber-duckys/</guid>
      <description>After attending BSides Canberra I managed to get one of the DigiSparks from Redacted who offered them up as a sort of home brew USB rubber ducky. Kudos to Tomais for actually getting me one.&#xA;The DigiSpark for reference:&#xA;Naturally I wanted to have some fun with it, and being primarily a linux user I developed the payload with that in mind. It took a fair amount of trial and error, but I ended up with a payload that was able to pull a script from this site, download it and execute.</description>
    </item>
    <item>
      <title>CVE-2023-41885 - Piccolo time based user enumeration</title>
      <link>https://skelmis.co.nz/posts/cve-2023-41885/</link>
      <pubDate>Mon, 18 Sep 2023 00:00:00 +0000</pubDate>
      <guid>https://skelmis.co.nz/posts/cve-2023-41885/</guid>
      <description>It started as &amp;ldquo;bring password hashing inline with industry best practices&amp;rdquo; and two weeks later ended as &amp;ldquo;BaseUser.login implementation is vulnerable to time based user enumeration&amp;rdquo;. So here&amp;rsquo;s how a PR to bring a package inline with security best practices lead to a CVE.&#xA;Recently I moved, and am still in the processing of moving my websites to an ORM called Piccolo which provides a nice database layer, batteries included approach to working with FastAPI while allowing me; a former Django developer; the ability to easily build data driven platforms without the need to write SQL.</description>
    </item>
    <item>
      <title>Lets talk time based user enumeration</title>
      <link>https://skelmis.co.nz/posts/tbue/</link>
      <pubDate>Sat, 22 Jul 2023 00:00:00 +0000</pubDate>
      <guid>https://skelmis.co.nz/posts/tbue/</guid>
      <description>I discovered some time based user enumeration in the wild with some pretty nice implications, so let&amp;rsquo;s discuss them.&#xA;So firstly, what is time based user enumeration or tbue as I will refer to it for the rest of this post?&#xA;Essentially tbue occurs in sites which do not return constant time responses regardless of if an account exists or not. You can think of it roughly speaking as the following code block:</description>
    </item>
    <item>
      <title>NZCSC 2023 Writeups</title>
      <link>https://skelmis.co.nz/posts/nzcsc-2023/</link>
      <pubDate>Mon, 12 Jun 2023 00:00:00 +0000</pubDate>
      <guid>https://skelmis.co.nz/posts/nzcsc-2023/</guid>
      <description>NZCSC tends to repeat challenges or at-least the themes of challenges yearly yet there is a distinct lack of resources such as write-ups from previous years. This aims to solve that while also just being a nice reference for things.&#xA;&amp;ldquo;The S in NZCSC stands for stego&amp;rdquo;&#xA;HexF The following write-ups are either nice, concise paths to the solution I&amp;rsquo;ve improved in post to remove extra fluff or the path I took to actually solve them including dead ends.</description>
    </item>
    <item>
      <title>Cyber Security quick commands</title>
      <link>https://skelmis.co.nz/cheatsheets/secops/</link>
      <pubDate>Tue, 06 Jun 2023 00:00:00 +0000</pubDate>
      <guid>https://skelmis.co.nz/cheatsheets/secops/</guid>
      <description>A lil collection of commands I find useful every so often.&#xA;PNG file? Link to heading Try zsteg:&#xA;gem install zsteg zsteg -a &amp;lt;filename&amp;gt;.png EVTX parser Link to heading https://github.com/williballenthin/python-evtx&#xA;Zip directory traversal Link to heading Tool to create zips which may result in the unzipped items being placed in arbitrary locations&#xA;https://github.com/ptoomey3/evilarc&#xA;Deobfuscate JS Link to heading JS Nice</description>
    </item>
  </channel>
</rss>
