9.2 KiB
Basiese Tomcat-inligting
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
- Werk jy in 'n cybersecurity-maatskappy? Wil jy jou maatskappy adverteer in HackTricks? Of wil jy toegang hê tot die nuutste weergawe van die PEASS of laai HackTricks in PDF af? Kyk na die SUBSCRIPTION PLANS!
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Kry die amptelike PEASS & HackTricks swag
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg my op Twitter 🐦@carlospolopm.
- Deel jou hacktruuks deur PR's in te dien by die hacktricks repo en hacktricks-cloud repo.
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regmaak. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. Probeer dit vandag nog gratis.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
Vermy om met root te hardloop
Om te verhoed dat Tomcat met root hardloop, is 'n baie algemene konfigurasie om 'n Apache-bediener in poort 80/443 in te stel en, as die versoekte pad ooreenstem met 'n regulêre uitdrukking, word die versoek na Tomcat gestuur wat op 'n ander poort hardloop.
Standaardstruktuur
├── 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
- Die
bin
-map hou skripte en binaire lêers wat nodig is om 'n Tomcat-bediener te begin en te laat loop. - Die
conf
-map hou verskeie konfigurasie lêers wat deur Tomcat gebruik word. - Die
tomcat-users.xml
-lêer hou gebruikerslegitimasie en hul toegewysde rolle. - Die
lib
-map bevat die verskeie JAR-lêers wat nodig is vir die korrekte werking van Tomcat. - Die
logs
- entemp
-mappe hou tydelike loglêers. - Die
webapps
-map is die verstek webwortel van Tomcat en bevat al die toepassings. Diework
-map dien as 'n kas en word gebruik om data tydens uitvoering te stoor.
Daar word verwag dat elke map binne webapps
die volgende struktuur sal hê.
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
Die belangrikste lêer onder hierdie is WEB-INF/web.xml
, wat bekend staan as die implementeringsbeskrywer. Hierdie lêer stoor inligting oor die roetes wat deur die toepassing gebruik word en die klasse wat hierdie roetes hanteer.
Alle gekompileerde klasse wat deur die toepassing gebruik word, moet in die WEB-INF/classes
-vouer gestoor word. Hierdie klasse kan belangrike besigheidslogika sowel as sensitiewe inligting bevat. Enige kwesbaarheid in hierdie lêers kan lei tot die totale kompromittering van die webwerf. Die lib
-vouer stoor die biblioteke wat deur daardie spesifieke toepassing benodig word. Die jsp
-vouer stoor Jakarta Server Pages (JSP), voorheen bekend as JavaServer Pages
, wat vergelyk kan word met PHP-lêers op 'n Apache-bediener.
Hier is 'n voorbeeld van 'n web.xml-lêer.
<?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>
Die web.xml
-konfigurasie hierbo definieer 'n nuwe servlet genaamd AdminServlet
wat gekoppel is aan die klas com.inlanefreight.api.AdminServlet
. Java gebruik die puntnotasie om pakkette te skep, wat beteken dat die pad op die skyf vir die bogenoemde klas sou wees:
classes/com/inlanefreight/api/AdminServlet.class
Daarna word 'n nuwe servlet-kartering geskep om versoeke na /admin
met AdminServlet
te karteer. Hierdie konfigurasie sal enige versoek wat ontvang word vir /admin
na die AdminServlet.class
-klas stuur vir verwerking. Die web.xml
-beskrywer bevat baie sensitiewe inligting en is 'n belangrike lêer om te ondersoek wanneer 'n Local File Inclusion (LFI) kwesbaarheid benut word.
tomcat-gebruikers
Die tomcat-users.xml
-lêer word gebruik om toegang tot die /manager
en host-manager
administrasiebladsye toe te laat of te verbied.
<?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>
Die lêer wys ons wat elkeen van die rolle manager-gui
, manager-script
, manager-jmx
, en manager-status
toegang tot bied. In hierdie voorbeeld kan ons sien dat 'n gebruiker tomcat
met die wagwoord tomcat
die manager-gui
rol het, en 'n tweede swak wagwoord admin
is ingestel vir die gebruikersrekening admin
.
Verwysings
Vind kwesbaarhede wat die belangrikste is sodat jy dit vinniger kan regstel. Intruder volg jou aanvalsoppervlak, voer proaktiewe dreigingsskanderings uit, vind probleme regoor jou hele tegnologie-stapel, van API's tot webtoepassings en wolkstelsels. Probeer dit vandag nog gratis.
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
- Werk jy in 'n cybersekuriteitsmaatskappy? Wil jy jou maatskappy adverteer in HackTricks? Of wil jy toegang hê tot die nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat? Kyk na die SUBSCRIPTION PLANS!
- Ontdek The PEASS Family, ons versameling eksklusiewe NFT's
- Kry die amptelike PEASS & HackTricks-uitrusting
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg my op Twitter 🐦@carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die hacktricks repo en hacktricks-cloud repo.