Basic Tomcat Info
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Για να μην τρέχει το Tomcat με root, μια πολύ κοινή ρύθμιση είναι να ρυθμίσετε έναν Apache server στην πόρτα 80/443 και, αν η ζητούμενη διαδρομή ταιριάζει με μια regexp, το αίτημα αποστέλλεται στο Tomcat που τρέχει σε διαφορετική πόρτα.
Ο φάκελος bin
αποθηκεύει σενάρια και δυαδικά αρχεία που απαιτούνται για την εκκίνηση και λειτουργία ενός διακομιστή Tomcat.
Ο φάκελος conf
αποθηκεύει διάφορα αρχεία ρυθμίσεων που χρησιμοποιούνται από το Tomcat.
Το αρχείο tomcat-users.xml
αποθηκεύει διαπιστευτήρια χρηστών και τους ανατεθέντες ρόλους τους.
Ο φάκελος lib
περιέχει τα διάφορα αρχεία JAR που απαιτούνται για τη σωστή λειτουργία του Tomcat.
Οι φάκελοι logs
και temp
αποθηκεύουν προσωρινά αρχεία καταγραφής.
Ο φάκελος webapps
είναι η προεπιλεγμένη ριζική τοποθεσία ιστού του Tomcat και φιλοξενεί όλες τις εφαρμογές. Ο φάκελος work
λειτουργεί ως κρυφή μνήμη και χρησιμοποιείται για την αποθήκευση δεδομένων κατά τη διάρκεια της εκτέλεσης.
Κάθε φάκελος μέσα στον webapps
αναμένεται να έχει την εξής δομή.
Το πιο σημαντικό αρχείο ανάμεσα σε αυτά είναι το WEB-INF/web.xml
, το οποίο είναι γνωστό ως ο περιγραφέας ανάπτυξης. Αυτό το αρχείο αποθηκεύει πληροφορίες σχετικά με τις διαδρομές που χρησιμοποιούνται από την εφαρμογή και τις κλάσεις που χειρίζονται αυτές τις διαδρομές.
Όλες οι μεταγλωττισμένες κλάσεις που χρησιμοποιούνται από την εφαρμογή θα πρέπει να αποθηκεύονται στον φάκελο WEB-INF/classes
. Αυτές οι κλάσεις μπορεί να περιέχουν σημαντική επιχειρηματική λογική καθώς και ευαίσθητες πληροφορίες. Οποιαδήποτε ευπάθεια σε αυτά τα αρχεία μπορεί να οδηγήσει σε πλήρη συμβιβασμό της ιστοσελίδας. Ο φάκελος lib
αποθηκεύει τις βιβλιοθήκες που απαιτούνται από αυτήν την συγκεκριμένη εφαρμογή. Ο φάκελος jsp
αποθηκεύει Jakarta Server Pages (JSP), πρώην γνωστές ως JavaServer Pages
, οι οποίες μπορούν να συγκριθούν με αρχεία PHP σε έναν διακομιστή Apache.
Ακολουθεί ένα παράδειγμα web.xml αρχείου.
Ο конфигурация web.xml
παραπάνω ορίζει μια νέα servlet με όνομα AdminServlet
που είναι χαρτογραφημένη στην κλάση com.inlanefreight.api.AdminServlet
. Η Java χρησιμοποιεί τη σημειογραφία τελείας για να δημιουργήσει ονόματα πακέτων, πράγμα που σημαίνει ότι η διαδρομή στον δίσκο για την κλάση που ορίστηκε παραπάνω θα είναι:
classes/com/inlanefreight/api/AdminServlet.class
Στη συνέχεια, δημιουργείται μια νέα χαρτογράφηση servlet για να χαρτογραφήσει αιτήματα στο /admin
με AdminServlet
. Αυτή η ρύθμιση θα στείλει οποιοδήποτε αίτημα ληφθεί για /admin
στην κλάση AdminServlet.class
για επεξεργασία. Ο web.xml
περιγραφέας περιέχει πολλές ευαίσθητες πληροφορίες και είναι ένα σημαντικό αρχείο για έλεγχο όταν εκμεταλλεύεστε μια Local File Inclusion (LFI) vulnerability.
Το tomcat-users.xml
αρχείο χρησιμοποιείται για να επιτρέπει ή να απαγορεύει την πρόσβαση στις σελίδες διαχείρισης /manager
και host-manager
.
Το αρχείο μας δείχνει τι παρέχει πρόσβαση σε κάθε έναν από τους ρόλους manager-gui
, manager-script
, manager-jmx
και manager-status
. Σε αυτό το παράδειγμα, μπορούμε να δούμε ότι ένας χρήστης tomcat
με τον κωδικό πρόσβασης tomcat
έχει τον ρόλο manager-gui
, και ένας δεύτερος αδύναμος κωδικός πρόσβασης admin
έχει οριστεί για τον λογαριασμό χρήστη admin
.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)