Apache Tomcat

Theory

Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. It provides a "pure Java" HTTP web server environment in which Java code can also run.

Practice

Enumeration

We can attempt to trigger an error on the website as a method of fingerprinting. If the error is similar as the one below, this indicates that the website is running Tomcat.

$ curl http://target.com/DoesNotExist

Credentials

The /manager/html directory is particularly sensitive as it allows the upload and deployment of WAR files, which can lead to code execution. This directory is protected by basic HTTP authentication, with common credentials being:

Common Vulnerabilities

In some vulnerable configurations of Tomcat you can gain access to protected directories in Tomcat using the path: /..;/

So, for example, you might be able to access the Tomcat manager page by accessing: www.vulnerable.com/lalala/..;/manager/html

Another way to bypass protected paths using this trick is to access http://www.vulnerable.com/;param=value/manager/html

Remote Code Execution (RCE)

If you have access to the Tomcat Web Application Manager, you can upload and deploy a .war file (execute code).

First create a war file using Msfvenom.

Then upload this file.

Start a listener in local machine.

Now access to https://example.com/shell. We should get a shell.

Post-Exploitation

If we are in the target system, we can retrieve information about credentials.

Resources

Last updated

Was this helpful?