본문 바로가기

개발/리눅스

http status code에 따른 error페이지 설정한 web.xml 먹히지 않는 현상 해결

반응형

 

이번엔 http code가 노출된다는 취약점 결과가 날라왔다. 

 

이전에 http code노출 막는 포스팅을 한 적이 있는데, 이와 다른 경우가 발생하였다.

2022.12.08 - [개발/취약점] - http 400 505 error code 노출 막기

 

http 400 505 error code 노출 막기

400 505번 http error code 출력되는 취약점 발생했다. 톰캣/conf/web.xml에 400 /error.html 401 /error.html 403 /error.html 404 /error.html 405 /error.html 500 /error.html 501 /error.html 정의를 하고 server.xml파일의 docBase에 error.htm

lsdev.tistory.com

1. web.xml에 error code별 html을 설정해줘도 안되서

 

2. server.xml설정을 해준 바 있다.(톰캣 8.5.82를 사용하고 있음)

 

분명히 http code와 tomcat 정보가 노출되지 않도록 설정을 했고 웹사이트에서 확인을 하였다.

 

(취약점을 내가 적용하기 전에 진단했나? 하며 확인해봤더니 날짜가 그렇지 않음을 확인... 주절주절)

 

curl --location --request GE@T 'https://url정보입력:포트'

터미널에서 이렇게 날려보니(GE@T :일부러 잘못된 요청을 해봄. 내가 위에 첨부한 이미지처럼 400이 발생하도록)

 

어? 그런데

취약점 보고서에 나온 내용대로 동일하게 위와 같이 오류가 나온다!

 

톰캣 access로그를 확인해보니 해당 요청(curl --location --request GE@T 'https://url정보입력:포트')에 대해선

 

로그가 안찍힌다. 들어오지 못하는걸까?

 

WAS로 가기전에 우리는 웹서버를 사용하지 않고 먼저, Haproxy에서 WAS로 로드밸런싱을 해준다.

 

Haproxy 설정에 대해서 찾아보니 HAProxy 구성 파일(haproxy.cfg)에 별도의 오류 페이지 설정이 없는 경우,

 

기본적으로 HAProxy는 내장된 오류 페이지를 사용한다고한다.

 

기본 오류 페이지에는 http code가 들어있기때문에, 각 코드별 파일을 아래와같이 수정하였다.

 

<html><body><h1>잘못된 접근입니다.</h1> Error Page </body></html>

 

또한, vi /etc/haproxy/haproxy.cfg 파일에서 443요청에 대해 아래와 같이 설정을 추가하였다.

errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http

 

혹시 error code별 http코드가 보이지 않는다면 find / -name *.http로 haproxy의 error code http를 찾아서 위의 디렉토리에 cp하자.

 

여기까지 끝났다면 

 

systemctl restart haproxy  명령어를 날려주고

 

아까와 같이 curl 날려주면 아래와 같이 내가 만든 ERROR PAGE가 나오는 것을 확인할 수 있다.

 

우리는 apache를 별도로 web server를 사용하지 않고 haproxy를 사용하기에 이와같은 순서가 됬지만,

 

혹시 동일한 취약점의 경우인데 haproxy가 아니라면 사용하고있는 web server의 설정을 알아보고 설정하자.

 

반응형