본문 바로가기

웹 해킹

[주통기반] 로컬 웹 서버 취약점 찾기 (정보 누출)

이번에는 주요정보통신기반시설 분석 웹 서버 취약점 9번째 정보 누출입니다.

 

정보 누출 취약점은 웹 서비스 이용 시 불필요한 정보가 누출되는 것을 말합니다.

웹 시스템에서 주요정보(개인 정보, 계정 정보, 계좌 정보 등)가 노출되거나 불필요한 정보가 사용자에게 노출되는 것입니다.

 

정보 누출로 인해 추가적인 공격의 정보를 제공해줄 수 있습니다.

 

1. 웹 서버 정보 노출

1) 웹 사이트에 접속합니다.

메인 페이지

 

2) 웹 서비스 이용 패킷을 확인합니다.

요청 패킷
실제 웹 서버

요청 시 응답에 웹 서버의 정보가 노출되며 실제 웹 서버와 동일한 것을 확인할 수 있습니다. Apache/2.4.52 (Ubuntu)

웹 서버의 종류와 버전 심지어 운영체제까지 확인이 가능합니다.

이 정보들을 이용해 해당 버전의 알려진 취약점을 통해 2차 공격이 가능해집니다.

 

3) 에러 발생 시 정보 누출

정보 노출

 

이런식으로 에러 발생 시에 불필요한 정보가 노출되는 지 확인해봅니다.

 

[대응 방안]

이 경우도 아파치 서버 설정 파일을 수정해주면 됩니다.

운영체제가 우분투이므로 /etc/apache2/apache2.conf 파일에서 serverTokens 을 추가해줍니다.

일반적으로는 httpd.conf 파일입니다.

serverTokens Prod

 

추가 후 서비스 재시작을 합니다.

에러 발생
응답 패킷 확인

 

사진과 같이 서버의 버전이나 운영체제 정보는 출력되지 않는 것을 확인할 수 있습니다.

또한, serverSignature Off 를 적용하여 에러발생 시 웹 서버의 버전 정보 노출을 막습니다.

 

serverTokens 별 제공되는 정보는 다음과 같습니다.

옵션 제공되는 정보
ServerTokens Full Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
ServerTokens Prod &
ServerTokens ProductOnly
Apache
ServerTokens major Apache/2
ServerTokens Minor Apache/2.0
ServerTokens Min &
ServerTokens Minimal
Apache/2.0.41
ServerTokens OS Apache/2.0.41 (Unix)

 

serverSignature Off

 

설정 후

 

설정 후 에러 발생 시 노출되는 정보를 막아줄 수 있습니다.

그리고 에러 발생 시 에러 코드에 따라 에러 페이지를 만들어 에러 별로 해당 페이지를 보여주는 것이 좋습니다.