9.4 KiB
Podstawowe informacje o Tomcat
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Pracujesz w firmie zajmującej się cyberbezpieczeństwem? Chcesz zobaczyć, jak Twoja firma jest reklamowana w HackTricks? A może chcesz mieć dostęp do najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF? Sprawdź PLAN SUBSKRYPCJI!
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do repozytorium hacktricks i hacktricks-cloud.
Znajdź najważniejsze podatności, aby móc je szybko naprawić. Intruder śledzi powierzchnię ataku, wykonuje proaktywne skanowanie zagrożeń, znajduje problemy w całym stosie technologicznym, od interfejsów API po aplikacje internetowe i systemy chmurowe. Wypróbuj go za darmo już dziś.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
Unikaj uruchamiania jako root
Aby nie uruchamiać Tomcat jako root, bardzo częstą konfiguracją jest ustawienie serwera Apache na porcie 80/443 i jeśli żądany ścieżka pasuje do wyrażenia regularnego, żądanie jest przesyłane do Tomcat działającego na innym porcie.
Domyślna struktura
├── bin
├── conf
│ ├── catalina.policy
│ ├── catalina.properties
│ ├── context.xml
│ ├── tomcat-users.xml
│ ├── tomcat-users.xsd
│ └── web.xml
├── lib
├── logs
├── temp
├── webapps
│ ├── manager
│ │ ├── images
│ │ ├── META-INF
│ │ └── WEB-INF
| | └── web.xml
│ └── ROOT
│ └── WEB-INF
└── work
└── Catalina
└── localhost
- Foldera
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 poprawnego działania Tomcat. - Foldery
logs
itemp
przechowują tymczasowe pliki dziennika. - Folder
webapps
jest domyślnym katalogiem głównym Tomcat i zawiera wszystkie aplikacje. Folderwork
działa jako pamięć podręczna i służy do przechowywania danych w trakcie działania.
Oczekuje się, że każdy folder wewnątrz webapps
będzie miał następującą strukturę.
webapps/customapp
├── images
├── index.jsp
├── META-INF
│ └── context.xml
├── status.xsd
└── WEB-INF
├── jsp
| └── admin.jsp
└── web.xml
└── lib
| └── jdbc_drivers.jar
└── classes
└── AdminServlet.class
Najważniejszym plikiem spośród nich jest WEB-INF/web.xml
, który jest znany jako deskryptor wdrożenia. Ten plik przechowuje informacje o trasach używanych przez aplikację oraz klasy obsługujące te trasy.
Wszystkie skompilowane klasy używane przez aplikację powinny być przechowywane w folderze WEB-INF/classes
. Te klasy mogą zawierać ważną logikę biznesową oraz wrażliwe informacje. Jakakolwiek podatność w tych plikach może prowadzić do całkowitego skompromitowania strony internetowej. Folder lib
przechowuje biblioteki potrzebne dla danej aplikacji. 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ładowy plik web.xml.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>com.inlanefreight.api.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/admin</url-pattern>
</servlet-mapping>
</web-app>
Plik konfiguracyjny web.xml
powyżej definiuje nowy servlet o nazwie AdminServlet
, który jest mapowany do klasy com.inlanefreight.api.AdminServlet
. W Javie używa się notacji kropkowej do tworzenia nazw pakietów, co oznacza, że ścieżka na dysku dla powyższej klasy będzie:
classes/com/inlanefreight/api/AdminServlet.class
Następnie tworzony jest nowy mapowanie servletu, aby mapować żądania na /admin
z AdminServlet
. Ta konfiguracja przekieruje każde żądanie otrzymane dla /admin
do klasy AdminServlet.class
w celu przetworzenia. Deskryptor web.xml
zawiera wiele wrażliwych informacji i jest ważnym plikiem do sprawdzenia podczas wykorzystywania podatności na Local File Inclusion (LFI).
tomcat-users
Plik tomcat-users.xml
jest używany do zezwolenia lub zabronienia dostępu do stron administracyjnych /manager
i host-manager
.
<?xml version="1.0" encoding="UTF-8"?>
<SNIP>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<!--
By default, no user is included in the "manager-gui" role required
to operate the "/manager/html" web application. If you wish to use this app,
you must define such a user - the username and password are arbitrary.
Built-in Tomcat manager roles:
- manager-gui - allows access to the HTML GUI and the status pages
- manager-script - allows access to the HTTP API and the status pages
- manager-jmx - allows access to the JMX proxy and the status pages
- manager-status - allows access to the status pages only
The users below are wrapped in a comment and are therefore ignored. If you
wish to configure one or more of these users for use with the manager web
application, do not forget to remove the <!.. ..> that surrounds them. You
will also need to set the passwords to something appropriate.
-->
<SNIP>
!-- user manager can access only manager section -->
<role rolename="manager-gui" />
<user username="tomcat" password="tomcat" roles="manager-gui" />
<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="admin" roles="manager-gui,admin-gui" />
</tomcat-users>
Plik pokazuje, do czego daje dostęp każda z ról manager-gui
, manager-script
, manager-jmx
i manager-status
. W tym przykładzie możemy zobaczyć, że użytkownik tomcat
o haśle tomcat
ma rolę manager-gui
, a drugie słabe hasło admin
jest ustawione dla konta użytkownika admin
.
Odnośniki
Znajdź najważniejsze podatności, aby szybko je naprawić. Intruder śledzi powierzchnię ataku, wykonuje proaktywne skanowanie zagrożeń, znajduje problemy w całym stosie technologicznym, od interfejsów API po aplikacje internetowe i systemy chmurowe. Wypróbuj go za darmo już dziś.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Pracujesz w firmie zajmującej się cyberbezpieczeństwem? Chcesz zobaczyć, jak Twoja firma jest reklamowana w HackTricks? A może chcesz mieć dostęp do najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF? Sprawdź PLAN SUBSKRYPCYJNY!
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR do repozytorium hacktricks i hacktricks-cloud.