문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
wiki:was:tomcat:tip:tomcat_버전_정보_숨기기 [2022/07/22 10:16] bjlee |
wiki:was:tomcat:tip:tomcat_버전_정보_숨기기 [2023/07/06 15:59] (현재) r_kimmk |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== | ====== | ||
<WRAP left notice 80%> | <WRAP left notice 80%> | ||
- | * description : Tomcat 서버의 버전정보를 숨기는 방법 | + | * description : Tomcat 서버의 버전정보 |
- | * author | + | * author |
* email : kimmk@repia.com | * email : kimmk@repia.com | ||
- | * lastupdate | + | * lastupdate |
</ | </ | ||
<WRAP clear/> | <WRAP clear/> | ||
- | ===== Intro ===== | + | ====== |
+ | 항목명 : 에러 메시지 관리 (사용자 화면) | ||
+ | 중요도 : 중 | ||
+ | 항목개요 : 공격자가 대상 시스템의 정보를 획득하기 위해 고의적으로 다양한 에러를 유발하여 돌아오는 에러 메세지를 통해 웹 프로그램 구조 및 환경설정을 추정할 수 있음 | ||
- | Tomcat은 Apache와 연계하여 많이 사용하나, | + | ===== 판단기준 ===== |
- | 이때 기본 | + | 양호: 에러 페이지 설정과 에러 페이지가 모두 존재할 |
- | 이렇게 버전이 노출이 된 경우 | + | 취약: 에러 페이지 설정이 없거나 에러 페이지가 없을 |
\\ | \\ | ||
- | \\ | + | {{: |
- | ===== 취약점 정리 ===== | + | |
- | 1-1. 기본 에러 페이지 정보 제거 | + | |
- | 1) CATALINA_HOME/ | + | ===== 조치 방법 ===== |
+ | 1. {$CATALINA_HOME}/webapps/ROOT 디렉토리에 error.jsp 에러 페이지 생성 | ||
<code bash> | <code bash> | ||
- | cd {$CATALINA_HOME}/lib | + | < |
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | error was encountered while trying to use an ErrorDocument to handle the request.</ | ||
+ | </ | ||
+ | </ | ||
</ | </ | ||
+ | 2. {$CATALINA_HOME}/ | ||
- | 2) catalina.jar 에서 ServerInfo.properties 파일만 압축 해제 | + | web.xml 제일 |
- | <code bash> | + | |
- | jar xvf catalina.jar org/ | + | |
- | </ | + | |
- | + | ||
- | 3) ServerInfo.properties 수정 | + | |
- | <code bash> | + | |
- | server.info=Apache Tomcat | + | |
- | server.number= | + | |
- | server.built= | + | |
- | </ | + | |
- | 4) catalina.jar ServerInfo.properties파일 repackage | + | |
- | <code bash> | + | |
- | jar uf catalina.jar org/apache/ | + | |
- | </ | + | |
- | + | ||
- | \\ | + | |
- | 1-2. Header(헤더) 버전 정보 제거 \\ | + | |
- | server.xml 파일 수정 \\ | + | |
- | Connector 태그에 server 속성을 추가. | + | |
- | <code bash> | + | |
- | vi {$CATALINA_HOME}/ | + | |
- | <Connector port=" | + | |
- | </ | + | |
- | \\ | + | |
- | > 결과 | + | |
- | <code bash> | + | |
- | curl -i 192.168.10.86: | + | |
- | + | ||
- | HTTP/1.1 200 OK | + | |
- | Server: apache tomcat | + | |
- | Content-Type: | + | |
- | Content-Language: | + | |
- | Date: Tue , 02 Jan 2018 04:33:57 GMT | + | |
- | </ | + | |
- | + | ||
- | \\ | + | |
- | 1-3. ErrorReportValve 설정을 통한 정보 제거 \\ | + | |
- | - server.xml 파일 수정 | + | |
- | < | + | |
- | < | + | |
- | \\ | + | |
- | > 아래 내용 추가 | + | |
- | <code bash> | + | |
- | <Valve className=" | + | |
- | </ | + | |
- | \\ | + | |
- | 2. 불필요한 examples 디렉토리(/ | + | |
- | 서버에 대한 상세 정보를 제공하고 있고, 예제 프로그램 취약점 공격 예방을 위해서 삭제. | + | |
- | {$CATALINA_HOME}/ | + | |
- | \\ | + | |
- | 3. 공격자가 대상 | + | |
- | - web.xml에 에러 페이지 설정 | + | |
- | + | ||
- | web.xml 제일 하단 </ | + | |
<code bash> | <code bash> | ||
줄 186: | 줄 146: | ||
</ | </ | ||
</ | </ | ||
+ | {{tag> |