# Informations de base sur Tomcat
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au [repo hacktricks](https://github.com/carlospolop/hacktricks) et au [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
Trouvez les vulnérabilités les plus importantes afin de les corriger plus rapidement. Intruder suit votre surface d'attaque, effectue des analyses de menaces proactives, trouve des problèmes dans toute votre pile technologique, des API aux applications web et aux systèmes cloud. [**Essayez-le gratuitement**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) dès aujourd'hui.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
***
### Évitez de l'exécuter avec les droits root
Pour ne pas exécuter Tomcat avec les droits root, une configuration très courante consiste à configurer un serveur Apache sur le port 80/443 et, si le chemin demandé correspond à une expression régulière, la requête est envoyée à Tomcat s'exécutant sur un port différent.
### Structure par défaut
```
├── 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
```
* Le dossier `bin` stocke les scripts et les binaires nécessaires pour démarrer et exécuter un serveur Tomcat.
* Le dossier `conf` stocke divers fichiers de configuration utilisés par Tomcat.
* Le fichier `tomcat-users.xml` stocke les informations d'identification des utilisateurs et leurs rôles attribués.
* Le dossier `lib` contient les différents fichiers JAR nécessaires au bon fonctionnement de Tomcat.
* Les dossiers `logs` et `temp` stockent des fichiers journaux temporaires.
* Le dossier `webapps` est le répertoire racine par défaut de Tomcat et héberge toutes les applications. Le dossier `work` agit comme un cache et est utilisé pour stocker des données pendant l'exécution.
Il est attendu que chaque dossier à l'intérieur de `webapps` ait la structure suivante.
```
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
```
Le fichier le plus important parmi ceux-ci est `WEB-INF/web.xml`, qui est connu sous le nom de descripteur de déploiement. Ce fichier stocke **des informations sur les routes** utilisées par l'application et les classes qui gèrent ces routes.\
Toutes les classes compilées utilisées par l'application doivent être stockées dans le dossier `WEB-INF/classes`. Ces classes peuvent contenir une logique métier importante ainsi que des informations sensibles. Toute vulnérabilité dans ces fichiers peut entraîner une compromission totale du site web. Le dossier `lib` stocke les bibliothèques nécessaires à cette application spécifique. Le dossier `jsp` stocke les [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), anciennement connues sous le nom de `JavaServer Pages`, qui peuvent être comparées aux fichiers PHP sur un serveur Apache.
Voici un exemple de fichier **web.xml**.
```xml
AdminServletcom.inlanefreight.api.AdminServletAdminServlet/admin
```
Le fichier de configuration `web.xml` ci-dessus définit un **nouveau servlet nommé `AdminServlet`** qui est mappé à la **classe `com.inlanefreight.api.AdminServlet`**. Java utilise la notation point pour créer des noms de packages, ce qui signifie que le chemin sur le disque pour la classe définie ci-dessus serait :
* **`classes/com/inlanefreight/api/AdminServlet.class`**
Ensuite, une nouvelle correspondance de servlet est créée pour **mapper les requêtes vers `/admin` avec `AdminServlet`**. Cette configuration enverra toute requête reçue pour **`/admin` à la classe `AdminServlet.class`** pour traitement. Le descripteur **`web.xml`** contient beaucoup d'**informations sensibles** et est un fichier important à vérifier lors de l'exploitation d'une vulnérabilité de **Local File Inclusion (LFI)**.
### tomcat-users
Le fichier **`tomcat-users.xml`** est utilisé pour **autoriser** ou refuser l'accès aux pages d'administration **`/manager` et `host-manager`**.
```xml
!-- user manager can access only manager section -->
```
Le fichier nous montre à quoi donnent accès chacun des rôles `manager-gui`, `manager-script`, `manager-jmx` et `manager-status`. Dans cet exemple, nous pouvons voir qu'un utilisateur `tomcat` avec le mot de passe `tomcat` a le rôle `manager-gui`, et un deuxième mot de passe faible `admin` est défini pour le compte utilisateur `admin`.
## Références
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
Trouvez les vulnérabilités les plus importantes afin de pouvoir les corriger plus rapidement. Intruder suit votre surface d'attaque, effectue des analyses de menace proactives et détecte des problèmes dans l'ensemble de votre pile technologique, des API aux applications web et aux systèmes cloud. [**Essayez-le gratuitement**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) dès aujourd'hui.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au référentiel [hacktricks](https://github.com/carlospolop/hacktricks) et [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.