Basic Tomcat Info
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
루트로 실행하지 않기
Tomcat을 루트로 실행하지 않기 위해 매우 일반적인 구성은 포트 80/443에서 Apache 서버를 설정하고, 요청된 경로가 정규 표현식과 일치하는 경우 요청을 다른 포트에서 실행 중인 Tomcat으로 전송하는 것입니다.
기본 구조
bin
폴더는 Tomcat 서버를 시작하고 실행하는 데 필요한 스크립트와 바이너리를 저장합니다.conf
폴더는 Tomcat에서 사용하는 다양한 구성 파일을 저장합니다.tomcat-users.xml
파일은 사용자 자격 증명과 그들이 할당된 역할을 저장합니다.lib
폴더는 Tomcat의 올바른 기능을 위해 필요한 다양한 JAR 파일을 보관합니다.logs
및temp
폴더는 임시 로그 파일을 저장합니다.webapps
폴더는 Tomcat의 기본 웹 루트이며 모든 애플리케이션을 호스팅합니다.work
폴더는 캐시 역할을 하며 런타임 동안 데이터를 저장하는 데 사용됩니다.
webapps
내의 각 폴더는 다음 구조를 가질 것으로 예상됩니다.
가장 중요한 파일은 WEB-INF/web.xml
로, 배포 설명서로 알려져 있습니다. 이 파일은 애플리케이션에서 사용되는 경로에 대한 정보와 이러한 경로를 처리하는 클래스들을 저장합니다.
애플리케이션에서 사용되는 모든 컴파일된 클래스는 WEB-INF/classes
폴더에 저장되어야 합니다. 이 클래스들은 중요한 비즈니스 로직과 민감한 정보를 포함할 수 있습니다. 이러한 파일의 취약점은 웹사이트의 완전한 손상으로 이어질 수 있습니다. lib
폴더는 해당 애플리케이션에 필요한 라이브러리를 저장합니다. jsp
폴더는 Jakarta Server Pages (JSP), 이전에 JavaServer Pages
로 알려졌던 파일을 저장하며, 이는 Apache 서버의 PHP 파일과 비교할 수 있습니다.
여기 web.xml 파일의 예가 있습니다.
The web.xml
구성은 **AdminServlet
**이라는 새 서블릿을 정의하며, 이는 com.inlanefreight.api.AdminServlet
클래스에 매핑됩니다. Java는 점 표기법을 사용하여 패키지 이름을 생성하므로, 위에서 정의된 클래스의 디스크 경로는 다음과 같습니다:
classes/com/inlanefreight/api/AdminServlet.class
다음으로, **/admin
에 대한 요청을 AdminServlet
**으로 매핑하는 새로운 서블릿 매핑이 생성됩니다. 이 구성은 **/admin
**에 대해 수신된 모든 요청을 처리하기 위해 AdminServlet.class
클래스에 전송합니다. web.xml
설명자는 많은 민감한 정보를 포함하고 있으며, Local File Inclusion (LFI) 취약점을 활용할 때 확인해야 할 중요한 파일입니다.
tomcat-users
tomcat-users.xml
파일은 /manager
및 host-manager
관리 페이지에 대한 접근을 허용하거나 허용하지 않기 위해 사용됩니다.
파일은 manager-gui
, manager-script
, manager-jmx
, 및 manager-status
각 역할이 제공하는 접근 권한을 보여줍니다. 이 예제에서는 비밀번호 tomcat
을 가진 사용자 tomcat
이 manager-gui
역할을 가지고 있으며, 사용자 계정 admin
에 대해 두 번째 약한 비밀번호 admin
이 설정되어 있음을 볼 수 있습니다.
References
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated