Kristen Eggleston
  • Demo Reel
  • Blog

SkillsQuest (SSQ) by NetWars CTF

11/29/2025

 
This time I felt incredibly confident. I was no longer tripped up on what an MD5hashsum is or SQL syntax. I was ready. 

And I was ready! I completed every 'easy' and 'medium' task and half of the 'hard' and 'difficult' tasks. 

Unfortunately I didn't take any notes on this one and only remember discovering that linux saves your bash commands. I knew about the 'history' command but didn't realize there was a whole .bash_history file saved to the user profiles. 

I was glad that this time, I knew how to use URL encoding to bypass path traversal filters in BurpSuite and how to exploit an XSS vulnerability to hijack the admin session.

TryHackMe (THM) CTF

11/15/2025

 
TryHackMe is a wonderful gamified platform. A very popular gamified platform. So popular, that there are write ups for each room almost as soon as they're published. If it's not a video walk through on youtube giving you all the answers, it's a write up on GitHub or on Medium. 

I liked it as a game platform, it explained many topics and I gravitated mostly towards the pen testing rooms. 
Picture
See? Proof! 

But the popularity is it's downfall as a test. These CTFs are an open book test in the first place, if for some reason you don't know how to use burpsuite for instance, but to have all of the writeups just readily available at your fingertips? Tragic. Hilariously, there was only one room that wasn't explicitly written out, step by step in how to solve it and that was the OSINT room. 

We had to track usernames and conversations and decrypt base64 comments from site to site to track down the flag, and honestly it was the challenge I enjoyed the most. Who doesn't love a little cyber stalking and following the bread crumbs?

Unfortunately this entire CTF was a wash, because all of the answers (sans the one room above) were easily found on the web. 

SANS BootUp Capture-the-flag (CTF)

11/1/2025

 
The time: September 10 through Sunday, September 14, 2026
The place: cooped up in my office with the cats, desperately hunched over my laptop


My first CTF was less about solving challenges and more about understanding what I was even looking at.
At the time, I didn’t fully understand what a “flag” was in the context of a CTF. I assumed it was something abstract or hidden behind layers of complexity. In reality, it’s just a string, typically formatted like:

flag{example_flag}

The goal is simple: get the program to reveal it. Which was simple when I finally realized what I was looking for, or at least, I could recognize that these challenges were meant to be beginner/mid level challenges and should be solvable if I could hack just a little bit. 

The best tools I was introduced to in this CTF were Burpsuite and exiftool. What do you mean you can just change what you send to the website and interrupt the traffic to force a different page to show up? That's fantastic! This was such a novel concept that this was even possible to do, I spent half my time just playing around trying to force my way into the different parts of the test site. 
As for exiftool, I was very familiar with using the CLI through my linux usage, but had never realized that you could look at the metadata on the file in the command line. It was great to learn about magic numbers and how to alter that to reveal anything and everything about the original image, or to corrupt the image to conceal the data. 

The SANS BootUp CTF was the perfect start to my cyber career and to the concept of red teaming, even if I still hold that whoever thought up CTFs was a sadist because it was difficult. I pity anyone who didn't initially have coding experience. 

Physically Based

8/9/2013

 
In trying to set up a lighting test for the shader and seeing how fast it rendered, I tried to turn up the diffuse bounces to get a more realistic feel on the render. It didn't do anything. Apparently, the way I made the shader with the lambert making the diffuse calculations did not take into account bounces. Now, it does! I just plugged in the physically based diffuse node rather than the lambert.

All I want is a proper cup of coffee made in a proper copper coffee pot.

8/8/2013

 
The shader now has defaults for different metals and different finishes of the metals including: gold, copper, brass, bronze, silver and chrome in aged, dull and polished finishes. The buttons change the diffuse and spec colors depending on which metal is chosen and changes the diffuse and spec intensity, highlight angle and scratch/denting options depending on which finish is chosen.

Specular Difficulties

8/2/2013

 
In order to make this a proper shader I have to rework the spec to utilize PBR spec. Something is wrong with my node network right now I think, when I put it on a fancy model, strange square artifacts appear when I turn up the anisotropic bias/angle. It doesn't show up when I use a surface model SOP rather than build my own.

Above Renders:
  • Complex model with default pbrspecular settings
  • Complex model with an Anisotropic Bias of 0.4
  • Polygon soup teapot to get irregular polygons with default pbrspecular settings
  • Polygon soup teapot with Anisotropic Bias of 0.4
  • Default teapot with default pbrspecular settings
  • Default teapot with Anisotropic Bias of 0.4


I've recalculated the normals for the complex model but that doesn't seem to be doing anything.



So on the left is a surface model plugged in for the specular and on the right is my shader how I've built it. Apparently I've got the basic setup correct because it finally gave basically the same results as the surface model because both shaders show artifacting! Which means it is the model and not me. I still have to finagle the pbr spec to perfectly match the surface model though which will be a bit more dissecting but at least it's beginning to be accurate.

Picture
So we're getting somewhere! The spec is working now so I decided to start adding the patterns on and see if the spec holds up. For the most part it does, it works on the object reflections but seemingly not on the light reflections. It still looks a bit glossy on the rust, though it is cutting down a bit.

Metal Tiles

8/1/2013

 
This was another VEX exercise for me. Here I focused on altering the pattern per face.

Metal Tile Features:
  • Scratched pattern in a high, stretched frequency
  • Randomly rotated and offset
  • Different spec calculations needed

In addition to figuring out how to rotate around the face, I had to rework the specular component of the shader in order to make it function like a real shader rather than one that just outputs maps. I switched from using a trace SOP to using PBR specular.
I like the way this has turned out. I need to allow the option to change the rotation of the tile at something different than 90 degrees. Also there needs to be an option to have this brushed metal as a standalone texture, tiles based on UVs in addition to the standard tiles based on primitives.

Face Id

7/30/2013

 
Dabbling in VEX shaders gives the possibility for textures based on faces rather than UVs, but one must have access to the face id for this to happen.

Voilà! In view, a humble vaudevillian VEX, cast vicariously as both victim and villain by the vicissitudes of fate.

int $fface = getprimid();
Yes, it took longer than I care to admit to find that line of code.

Pretty Picture Time

7/30/2013

 
It occurred to me that I'd lots of lovely renders for SIGGRAPH but never actually posted them online. This is what functionality the shader is capable of so far.

Diamond Plate Steel 2.0

7/29/2013

 
Alright so for some reason, the rotation angle is also based off of the initial shape of the dot. These dots started out as circles and were stretched into ellipses from the rotation formula.

        float $newx = $fx * cos($rad) + $fy * sin($rad); //switch to -/+ to change which was on top
        float $newy = $fx * sin($rad) + $fy * cos($rad);


Picture
Default
Picture
Used as displacement
<<Previous

    Author

    Compilations and contemplations of my time as a Side Effects intern.

    Archives

    November 2025
    August 2013
    July 2013
    June 2013

    Categories

    All
    Discoveries
    Fun Renders
    It Totally Works
    New Feature
    Personal
    Problems
    Uber Shader

Proudly powered by Weebly