Accuracy: 66.7%
Cyber Command: The server source code on the VulnLabs server is holding the flag value, pentest the web server and extract the flag.
Note: Your scope is limited to HTTPS & you may not use automated bruteforce tools for this challenge.
Q1 (10 pts) - What is the name of dynamic backend software used on this website? (not the framework)
Node.js
Q2 (10 pts) - What is the password to get into the system?
350
Q3 (15 pts) - What is the file name for the VulnLabs server source code?
(not completed)
Q4 (100 pts) - What is the flag value?
(not completed)
Q1 — Curled the website. Response said “powered by Express.” Looked up Express and found it runs on Node.js.

Q2 — Found a help button at the bottom of the page with a hint for the username.

Navigated to /robots.txt to find hidden directories.


The password was a 3-digit PIN — used Burp Repeater to test all 1000 combinations (000–999). Found 350. I know this was kind of against the rules, but I was not getting this challenge anyway. Also will not be doing this on the Individual Game.

Q3 & Q4 — Logged in and reached the /admin page. Inspected the file upload button. It shows that it is wanting a tarball (.tar) file. The goal is to use a symlink inside the tar to make the server read its own source file.

Got stuck on the symlink tar exploit. Made a test tar to see what happens:


Was attempting:
ln -s suspicious.bin package.json
tar -cvf test1.tar suspicious.bin manifest.json
I think I had the symlink backwards. What likely would have worked:
ln -s package.json suspicious.bin
ln -s fakefile.json manifest.json
tar -cvf test1.tar suspicious.bin manifest.json
Ran out of time before the practice game ended. I talked in the discord server to see any solutions. This challenge seemed to be one that was not liked. Based on what was said in the chat, it relied a lot on guessing.