Basic Tomcat Info
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Para não executar o Tomcat como root, uma configuração muito comum é definir um servidor Apache na porta 80/443 e, se o caminho solicitado corresponder a uma regexp, a solicitação é enviada para o Tomcat executando em uma porta diferente.
A pasta bin
armazena scripts e binários necessários para iniciar e executar um servidor Tomcat.
A pasta conf
armazena vários arquivos de configuração usados pelo Tomcat.
O arquivo tomcat-users.xml
armazena credenciais de usuário e seus papéis atribuídos.
A pasta lib
contém os vários arquivos JAR necessários para o funcionamento correto do Tomcat.
As pastas logs
e temp
armazenam arquivos de log temporários.
A pasta webapps
é a raiz web padrão do Tomcat e hospeda todas as aplicações. A pasta work
atua como um cache e é usada para armazenar dados durante a execução.
Cada pasta dentro de webapps
deve ter a seguinte estrutura.
O arquivo mais importante entre esses é WEB-INF/web.xml
, que é conhecido como o descritor de implantação. Este arquivo armazena informações sobre as rotas usadas pela aplicação e as classes que manipulam essas rotas.
Todas as classes compiladas usadas pela aplicação devem ser armazenadas na pasta WEB-INF/classes
. Essas classes podem conter lógica de negócios importante, bem como informações sensíveis. Qualquer vulnerabilidade nesses arquivos pode levar à comprometimento total do site. A pasta lib
armazena as bibliotecas necessárias para essa aplicação específica. A pasta jsp
armazena Jakarta Server Pages (JSP), anteriormente conhecidas como JavaServer Pages
, que podem ser comparadas a arquivos PHP em um servidor Apache.
Aqui está um exemplo de arquivo web.xml.
A configuração web.xml
acima define um novo servlet chamado AdminServlet
que está mapeado para a classe com.inlanefreight.api.AdminServlet
. Java usa a notação de ponto para criar nomes de pacotes, o que significa que o caminho no disco para a classe definida acima seria:
classes/com/inlanefreight/api/AdminServlet.class
Em seguida, um novo mapeamento de servlet é criado para mapear solicitações para /admin
com AdminServlet
. Esta configuração enviará qualquer solicitação recebida para /admin
para a classe AdminServlet.class
para processamento. O descritor web.xml
contém muitas informações sensíveis e é um arquivo importante a ser verificado ao explorar uma vulnerabilidade de Inclusão de Arquivo Local (LFI).
O arquivo tomcat-users.xml
é usado para permitir ou negar acesso às páginas administrativas /manager
e host-manager
.
O arquivo nos mostra a que cada um dos papéis manager-gui
, manager-script
, manager-jmx
e manager-status
fornece acesso. Neste exemplo, podemos ver que um usuário tomcat
com a senha tomcat
tem o papel manager-gui
, e uma segunda senha fraca admin
está definida para a conta de usuário admin
.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)