Basic Tomcat Info
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Evitare di eseguire come root
Per non eseguire Tomcat come root, una configurazione molto comune è impostare un server Apache sulla porta 80/443 e, se il percorso richiesto corrisponde a una regexp, la richiesta viene inviata a Tomcat in esecuzione su una porta diversa.
Struttura predefinita
La cartella
bin
memorizza script e binari necessari per avviare e far funzionare un server Tomcat.La cartella
conf
memorizza vari file di configurazione utilizzati da Tomcat.Il file
tomcat-users.xml
memorizza le credenziali degli utenti e i loro ruoli assegnati.La cartella
lib
contiene i vari file JAR necessari per il corretto funzionamento di Tomcat.Le cartelle
logs
etemp
memorizzano file di log temporanei.La cartella
webapps
è la webroot predefinita di Tomcat e ospita tutte le applicazioni. La cartellawork
funge da cache e viene utilizzata per memorizzare dati durante l'esecuzione.
Ogni cartella all'interno di webapps
è prevista avere la seguente struttura.
Il file più importante tra questi è WEB-INF/web.xml
, noto come il descrittore di distribuzione. Questo file memorizza informazioni sui percorsi utilizzati dall'applicazione e le classi che gestiscono questi percorsi.
Tutte le classi compilate utilizzate dall'applicazione dovrebbero essere memorizzate nella cartella WEB-INF/classes
. Queste classi potrebbero contenere logica aziendale importante così come informazioni sensibili. Qualsiasi vulnerabilità in questi file può portare a un compromesso totale del sito web. La cartella lib
memorizza le librerie necessarie per quella particolare applicazione. La cartella jsp
memorizza Jakarta Server Pages (JSP), precedentemente conosciute come JavaServer Pages
, che possono essere paragonate ai file PHP su un server Apache.
Ecco un esempio di file web.xml.
Il file di configurazione web.xml
sopra definisce un nuovo servlet chiamato AdminServlet
che è mappato alla classe com.inlanefreight.api.AdminServlet
. Java utilizza la notazione a punti per creare nomi di pacchetti, il che significa che il percorso su disco per la classe definita sopra sarebbe:
classes/com/inlanefreight/api/AdminServlet.class
Successivamente, viene creato un nuovo mapping del servlet per mappare le richieste a /admin
con AdminServlet
. Questa configurazione invierà qualsiasi richiesta ricevuta per /admin
alla classe AdminServlet.class
per l'elaborazione. Il descrittore web.xml
contiene molte informazioni sensibili ed è un file importante da controllare quando si sfrutta una vulnerabilità di Local File Inclusion (LFI).
tomcat-users
Il file tomcat-users.xml
è utilizzato per consentire o negare l'accesso alle pagine di amministrazione /manager
e host-manager
.
Il file ci mostra a cosa forniscono accesso ciascuno dei ruoli manager-gui
, manager-script
, manager-jmx
e manager-status
. In questo esempio, possiamo vedere che un utente tomcat
con la password tomcat
ha il ruolo manager-gui
, e una seconda password debole admin
è impostata per l'account utente admin
.
Riferimenti
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated