Basic Tomcat Info
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Unikaj uruchamiania jako root
Aby nie uruchamiać Tomcat jako root, bardzo powszechną konfiguracją jest ustawienie serwera Apache na porcie 80/443 i, jeśli żądana ścieżka pasuje do wyrażenia regularnego, żądanie jest wysyłane do Tomcat działającego na innym porcie.
Domyślna struktura
Folder
bin
przechowuje skrypty i pliki binarne potrzebne do uruchomienia i działania serwera Tomcat.Folder
conf
przechowuje różne pliki konfiguracyjne używane przez Tomcat.Plik
tomcat-users.xml
przechowuje dane uwierzytelniające użytkowników i przypisane im role.Folder
lib
zawiera różne pliki JAR potrzebne do prawidłowego działania Tomcat.Foldery
logs
itemp
przechowują tymczasowe pliki dziennika.Folder
webapps
jest domyślnym katalogiem głównym Tomcat i hostuje wszystkie aplikacje. Folderwork
działa jako pamięć podręczna i jest używany do przechowywania danych w czasie działania.
Każdy folder wewnątrz webapps
powinien mieć następującą strukturę.
Najważniejszym plikiem wśród nich jest WEB-INF/web.xml
, znany jako opis wdrożenia. Plik ten przechowuje informacje o trasach używanych przez aplikację oraz klasach obsługujących te trasy.
Wszystkie skompilowane klasy używane przez aplikację powinny być przechowywane w folderze WEB-INF/classes
. Klasy te mogą zawierać ważną logikę biznesową oraz wrażliwe informacje. Każda luka w tych plikach może prowadzić do całkowitego kompromitacji strony internetowej. Folder lib
przechowuje biblioteki potrzebne przez tę konkretną aplikację. Folder jsp
przechowuje Jakarta Server Pages (JSP), wcześniej znane jako JavaServer Pages
, które można porównać do plików PHP na serwerze Apache.
Oto przykład pliku web.xml.
The web.xml
configuration above defines a nowy serwlet o nazwie AdminServlet
that is mapped to the klasy com.inlanefreight.api.AdminServlet
. Java uses the dot notation to create package names, meaning the path on disk for the class defined above would be:
classes/com/inlanefreight/api/AdminServlet.class
Next, a new servlet mapping is created to map requests to /admin
with AdminServlet
. This configuration will send any request received for /admin
to the AdminServlet.class
class for processing. The web.xml
descriptor holds a lot of wrażliwych informacji and is an important file to check when leveraging a Local File Inclusion (LFI) vulnerability.
tomcat-users
The tomcat-users.xml
file is used to pozwolić or disallow access to the /manager
and host-manager
admin pages.
Plik pokazuje, do czego dostęp mają poszczególne role manager-gui
, manager-script
, manager-jmx
i manager-status
. W tym przykładzie widzimy, że użytkownik tomcat
z hasłem tomcat
ma rolę manager-gui
, a dla konta użytkownika admin
ustawione jest drugie słabe hasło admin
.
References
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated