반응형
- WebtoB 보안취약점 중 하나로 Log Format을 변경하는 내용이 있다.
- WebtoB의 Access LOG는 Default 값으로 Error LOG는 ERROR 로 되어있다.
- 취약점 내용은 Access LOG 의 Default 값을 특정 내용으로 변경하는 내용이 있다.
1. WebtoB LOGGING 절 확인
- 기본적으로 설정된 LOGGING 절의 내용이다.
*LOGGING syslog Format = "SYSLOG", FileName = "/home/tmax/webtob/log/system_%Y%%M%%D%.log", Option = "sync" acc_node Format = "DEFAULT", FileName = "/home/tmax/webtob/log/access_%Y%%M%%D%.log", Option = "sync" err_node Format = "ERROR", FileName = "/home/tmax/webtob/log/error_%Y%%M%%D%.log", Option = "sync" |
2. DEFAULT 의 내용 변경
- DEFAULT, COMMON, COMBIND는 ALIAS 된 값이다.
DEFAULT | Default Log File Format이다. (약자: "%h %t \"%r\" %s %b %D") |
COMMON | Common Log File Format이다. (약자: "%h %l %u %t \"%r\" %s %b") |
COMBINED | Combined Log File Format이다. (약자: "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\") |
%a | 요청을 보낸 장비의 IP 주소를 표시한다. %h와 동일하다. |
%b | 응답의 Byte를 표시한다. |
%c | WebtoB 응답 생성 위치를 표시한다.
|
%{_attr_name_}C | HTTP Request의 Cookie Header 값 중 '_attr_name_'에 해당하는 값을 표시한다. |
%d | 응답이 전송된 시간을 표시한다. |
%D | 요청을 처리하는데 소요된 시간을 표시한다. (단위: millisecond) |
%{ENV_NAME}e | 환경변수 ENV_NAME을 출력한다. |
%g | WebtoB가 내부적으로 사용하는 요청 식별자를 출력한다. |
%h | 요청을 보낸 장비의 IP 주소를 표시한다. |
%H | 사용한 HTTP 버전을 표시한다. |
%{HEADER_FIELD}i | HTTP Request의 HEADER_FIELD Header 값을 표시한다. |
%{_id_name_}J | 요청을 JEUS로 포워딩하여 처리하는 경우 내부적으로 사용하는 요청의 식별정보를 표시한다.
|
%m | HTTP Request 메소드를 표시한다. |
%p | Request가 도착한 서버의 포트 번호를 표시한다. |
%q | HTTP Request의 query 값을 표시한다. |
%r | HTTP Request의 Request line 전체를 표시한다. |
%R | HTTP Request의 Request line 전체를 표시한다. CheckURL이나 URLRewrite 기능에 의해 변경된 Request line을 표시한다. |
%s | 응답에 사용된 HTTP Status Code를 표시한다. |
%t | 요청처리를 마친 시간을 표시한다. |
%T | Request를 처리하는 데 소요된 시간을 표시한다. (단위: 초) |
%u | HTTP 인증에 사용된 user 이름을 표시한다. |
%U | HTTP Request URI를 표시한다. |
%v | Host Header 필드 값을 표시한다. |
%z | 응답이 압축된 경우 압축 전/후의 응답 크기와 압축률을 표시한다. |
%S | http와 https를 구분하여 표시한다. |
%A | 서버의 IP 주소를 표시한다. |
- 이외에도 %{X-Forwarded-For}i %{Referer}i 같은 설정도 추가 가능하다.
- X-Forwarded-For 는 실제 클라이언트 IP확인하는 설정으로 많이 사용한다.
3. 사용 예제
- 취약점 조치 내용에 나온 대로 적용하면 되며 아래와 같은 예시가 있다.
*LOGGING log1 Format = "%h %l %u %t \"%r\" %>s %b %{X-Forwarded-For}i %{Referer}i" FileName = "C:/TmaxSoft/WebtoB5.0/log/access_%Y%%M%%D%.log", Option="sync" Option = "sync" |