웹해킹_스터디

HTTP 헤더에서 Apache서버와 PHP 정보 감추기

duduranran 2023. 1. 17. 21:32

아파치와 PHP 환경의 서버에서 아파치 버전과 PHP 버전이 노출되는 경우가 있다.

이 정보를 통해 공격자는 해당 버전의 CVE를 찾아 공격을 시도할 수 있다.

그러니 응답 헤더를 통해 아파치와 PHP 버전이 나타난다면 아래와 같이 조치를 취해서 해당 서버에 대한 정보가

공격자들에게 알려지지 않게 조치를 취해야 한다.

 

1) PHP 정보 노출

헤더 정보에서 "X-Powered-By" 에는 PHP 정보가 나타난다.

PHP의 버전 정보를 감추기 위해서는 php.ini 파일에 있는

"expose_php = On"   > "expose_php = Off"로 변경하면 된다. 

.

php.ini 파일의 위치를 모를 경우 phpinfo를 이용하면된다.

php 파일 하나에 아래와 같이 입력후 저장, 브라우저에서 실행하면 php 관련 정보가 나온다.

<?php
phpinfo();
?>

 

2) 웹서버(아파치) 정보 노출

웹서버 정보 노출에 관련된 것은 Server Tokens와 Server Signature 설정이 있다.

아파치는 일반적으로 httpd.conf 안에 두 가지 설정을 바꿔주면 된다.

 

ServerTokens 설정은 Full, OS, Minor, Minimal, Major, Prod가 있는데,

ServerTokens의 초기값은 OS이다. Full이 가장 많은 정보를 출력한다.

웹서버 이름만 노출하는 'Prod' 세팅이 권장된다.

 

ServerSignature는 서버 버전정보 노출여부를 설정할 수 있는데, 'Off' 세팅이 권장된다.

On, Off, Email 세가지 설정 존재

 

근데! 우분투에서는 httpd.conf가 사라졌다고 한다!

우분투는 /etc/apache2/conf-available/security.conf 파일에 두 가지 설정이 있다.

 

두가지 설정을 모두 바꿨다면

아파치를 재시작 하자 >> service apache2 restart

 

아래의 사진  두 장을 비교해 보면 응답 헤더 부분의 서버정보에 버전정보가 사라진 것을 볼 수 있다.