Basic Tomcat Info
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Um Tomcat nicht mit Root auszuführen, ist eine sehr gängige Konfiguration, einen Apache-Server auf Port 80/443 einzurichten und, wenn der angeforderte Pfad mit einem Regexp übereinstimmt, die Anfrage an Tomcat zu senden, der auf einem anderen Port läuft.
Der bin
-Ordner speichert Skripte und Binärdateien, die zum Starten und Ausführen eines Tomcat-Servers benötigt werden.
Der conf
-Ordner speichert verschiedene Konfigurationsdateien, die von Tomcat verwendet werden.
Die Datei tomcat-users.xml
speichert Benutzeranmeldeinformationen und deren zugewiesene Rollen.
Der lib
-Ordner enthält die verschiedenen JAR-Dateien, die für das korrekte Funktionieren von Tomcat erforderlich sind.
Die Ordner logs
und temp
speichern temporäre Protokolldateien.
Der webapps
-Ordner ist das Standard-Webverzeichnis von Tomcat und hostet alle Anwendungen. Der work
-Ordner fungiert als Cache und wird verwendet, um Daten zur Laufzeit zu speichern.
Jeder Ordner innerhalb von webapps
wird erwartet, die folgende Struktur zu haben.
Die wichtigste Datei unter diesen ist WEB-INF/web.xml
, die als Deployment-Descriptor bekannt ist. Diese Datei speichert Informationen über die Routen, die von der Anwendung verwendet werden, und die Klassen, die diese Routen verarbeiten.
Alle kompilierten Klassen, die von der Anwendung verwendet werden, sollten im Ordner WEB-INF/classes
gespeichert werden. Diese Klassen können wichtige Geschäftslogik sowie sensible Informationen enthalten. Jede Schwachstelle in diesen Dateien kann zu einem vollständigen Kompromiss der Website führen. Der Ordner lib
speichert die Bibliotheken, die von dieser speziellen Anwendung benötigt werden. Der Ordner jsp
speichert Jakarta Server Pages (JSP), früher bekannt als JavaServer Pages
, die mit PHP-Dateien auf einem Apache-Server verglichen werden können.
Hier ist ein Beispiel für eine web.xml-Datei.
Die web.xml
-Konfiguration oben definiert einen neuen Servlet namens AdminServlet
, der auf die Klasse com.inlanefreight.api.AdminServlet
abgebildet ist. Java verwendet die Punktnotation zur Erstellung von Paketnamen, was bedeutet, dass der Pfad auf der Festplatte für die oben definierte Klasse wäre:
classes/com/inlanefreight/api/AdminServlet.class
Als Nächstes wird eine neue Servlet-Zuordnung erstellt, um Anfragen an /admin
mit AdminServlet
zuzuordnen. Diese Konfiguration sendet jede Anfrage, die für /admin
empfangen wird, an die Klasse AdminServlet.class
zur Verarbeitung. Der web.xml
-Descriptor enthält viele sensible Informationen und ist eine wichtige Datei, die überprüft werden sollte, wenn eine Local File Inclusion (LFI) vulnerability ausgenutzt wird.
Die tomcat-users.xml
-Datei wird verwendet, um den Zugriff auf die /manager
und host-manager
Admin-Seiten zu erlauben oder zu verweigern.
Die Datei zeigt uns, auf was jede der Rollen manager-gui
, manager-script
, manager-jmx
und manager-status
Zugriff gewährt. In diesem Beispiel sehen wir, dass ein Benutzer tomcat
mit dem Passwort tomcat
die Rolle manager-gui
hat, und ein zweites schwaches Passwort admin
für das Benutzerkonto admin
festgelegt ist.
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)