Preliminary Scan
- All TCP scan
| |
Output:
| |
- All UDP scan
| |
Output:
| |
- Script and version scan.
| |
Output:
| |
Web Application
- This company allows us to generate our own fonts.

- Virtual host fuzzing shows this:
| |
Output:
| |
- There is a CVE that enables arbitrary file write. https://github.com/fonttools/fonttools/security/advisories/GHSA-768j-98cg-p3fv
- Let’s generate the TTF files.
| |
- Create our malicious
.designspacefile. I’m gonna guess that portal vhost is in/var/www/html/portal
| |
- Nothing?
portal.variatype.htb
- Now let’s examine
portal.variatype.htb. It is running on PHP - Inside the styles.css, we see this
| |
- Let’s perform file fuzzing.
| |
Output:
| |
- The
.gitfile does not allow file listing. So, from here, we get the SHA commit
| |
Output:
| |
To retrieve the zlib of the commit,
| |
It is first two characters as directory then the rest of characters as the filename To decompress the file,
| |
- We can automate it using
git-dumper
| |
- There is password in commit
753b5
| |
- Let’s log in!
- Wow, ok. So this is where the TTF ended up in.

- Wooo, there is a local file disclosure vulnerability.
| |
Output:
| |
- Some interesting files
| |
Output:
| |
I can verify that the path to the TTF is here
| |
- Let’s try to write our TTF to
/var/www/portal.variatype.htb/public/files/
| |
- Then, we can access the file as a PHP file
| |
Output:
| |
- To get a reverse shell,
| |
Output:
| |
- To upgrade TTY, Use script to spawn a tty
| |
Background the shell. CTRL+Z. On your machine,
| |
Then, press enter twice
Shell as www-data
- The
/etc/passwd
| |
- Ports
| |
- There is a directory in
/opt
| |
- Interesting files:
- process_client_submissions.bak
| |
- The
/usr/local/src/fontforge/build/bin/fontforgein use is vulnerable to CVE-2024-25081 and CVE-2024-25082
| |
- This blog is super useful: https://www.canva.dev/blog/engineering/fonts-are-still-a-helvetica-of-a-problem/
- To create our malicious zipped font,
| |
Execute the script and transfer the tar file to /var/www/portal.variatype.htb/public/files
| |
- Sure enough This is the output of ps aux
| |
- To get a reverse shell,
| |
Execute the script and transfer to /var/www/portal.variatype.htb/public/files. After some time
| |
Shell as Steve
- Crontab
| |
- Sudo privileges
| |
- We can maintain persistence by dropping our SSH public key into
~/.ssh/authorized_keys - The python file contents
| |
- I thought that it is vulnerable to https://huntr.com/bounties/d6362117-ad57-4e83-951f-b8141c6e7ca5 but when I check the version
| |
- It should be vulnerable to CVE-2025-47273 instead
- Seems that we need to use POC4 of this bugbounty report because there is a limit to the length of URL
| |
Then, to download the plugin,
| |
- Wasted too much time on this Output:
| |
- Ok, let’s overwrite the files in
/root/.ssh/authorized_keysAttacker machine
| |
On the machine,
| |
Then to get root,
| |
Output:
| |
- Yay!
