백인감자

[웹 취약점] 웹서버 디렉토리 리스팅 방지 본문

카테고리 없음

[웹 취약점] 웹서버 디렉토리 리스팅 방지

백인감자 2024. 6. 25. 23:36

웹취약점에 대해서 공부를 하다가 디렉토리 리스팅이 유독 민감하게 느껴져서 GPT 에 질문을 해봤고 아래와 같다.

 

  • 디렉토리 리스팅 (Directory Listing):
    • 서버 디렉토리의 파일 목록이 노출되어 민감한 정보가 유출될 수 있습니다.
    • 예: 특정 디렉토리에 접근하면 해당 디렉토리 내의 파일 목록이 표시됨

 

디렉토리 리스팅(Directory Listing)은 웹 서버가 특정 디렉토리의 파일 목록을 브라우저에 표시하는 기능입니다. 이는 서버 설정에 따라 기본적으로 활성화되어 있거나, 개발자가 실수로 비활성화하지 않았을 때 발생할 수 있습니다. 디렉토리 리스팅이 활성화된 경우, 해당 디렉토리에 있는 파일과 폴더가 모두 노출될 수 있어 보안에 취약할 수 있습니다.

 

 

 

필자의 환경

  • 인스턴스 : AWS EC2 
  • OS : Amazon Linux 2  (CentOS 기반)
  • 웹서버 : Apache

 

실제 내가 사용중인 AWS EC2 인스턴스의 경우 웹서버를 Apache 를 쓰고 있는데 내가 임의로 만든 디렉토리 파일과 하위 디렉토리를 만들었는데 url 을 디렉토리까지 입력하니 디렉토리 리스트가 그대로 노출이 되었다.

 

디렉토리 리스팅 실제 예시

 

 

취미용으로 AWS 를 쓰고 있지만 디렉토리가 노출되는것은 꺼림칙하기 때문에 조치를 아래와 같이 하였다.

 

 

 

 

내 경우 httpd.conf 의 경로는 /etc/httpd/conf/httpd.conf  였다.( centOS 기반)

 

또한 웹루트 디렉토리에 대해서 비활성화를 원했기 때문에 아래처럼 조치하였다.

 

 

1. httpd.conf 파일의 웹루트 디렉토리에 Options -Indexes 추가

2. 웹루트 디렉토리에 .htaccess 파일 추가 , 파일내용은  Options -Indexes 

3. 1에서 만든 httpd.conf 파일에서  웹루트 디렉토리( <Directory "/var/www/html">) 에 대하여 AllowOverride All 로 수정

 

.

4. Apache 서버 재시작 (centOS기준) :  sudo systemctl restart httpd

 

 

위의 1~4 과정대로 수행 후 다시 확인해보니 403에러를 표시하면서 디렉토리 리스팅 방지가 된 것을 확인했다.

 

* 위 과정 중 불필요한 중복과정이 있을 수 있음.

 

 

 

 

아래는 GPT 답변이다.

 

 

Comments