[Web Application-모의해킹] 디렉터리 인덱싱 : 시큐어 코딩(웹 서버 설정 파일 변경) #4-3

2024. 5. 1. 00:49Project/Web Application-모의해킹

 

시큐어 코딩 :  웹 서버 설정 파일 변경

 

1) 개요

 

  Project:Web Site 웹 사이트 upload_folder와 upload_folder/사용자 계정 디렉터리에서 발견된 디렉터리 인덱싱 취약점을 방지하기 위하여 대응 방안 중 하나인 웹 서버 설정 파일을 변경하여 실제로 디렉터리 인덱싱 취약점을 방지할 수 있는지 확인한다.

 

 

2) 방법

 

  Project:Web Site 웹 사이트에서 upload_folder와 upload_folder/사용자 계정은 해당 웹 사이트에서 업로드된 파일이 저장되는 위치다. 웹 서버마다 설정 파일이 존재하며 해당 파일에서 디렉터리 리스팅 허용 여부를 설정할 수 있다. 본 웹 사이트는 Apache를 사용하므로 설정 파일인 httpd.conf에서 디렉터리 리스팅 허용 여부를 설정한다.

 

 

3) 시큐어 코딩

 

[1] Apache 내 httpd.conf 파일 설정

 

 

  웹 브라우저 주소창에 /php/upload_folder을 입력하여 디렉터리 파일 리스트가 노출되는지 확인한다.

 

 

  Apache를 사용하면 httpd.conf 파일에서 여러 가지 옵션을 설정할 수 있다. httpd.conf 파일 내 DocumentRoot 항목의 Options에서 Indexes를 제거하면 디렉터리 리스팅을 허용 거부할 수 있다. 본 웹 사이트는 우분투를 사용하고 있으므로 httpd.conf가 아닌 apach2.conf가 설정 파일 역할을 한다. 우분투에서 apach2.conf의 경로는 /etc/apache2/apache2.conf이며 CentOS인 경우 /etc/httpd/conf/httpd.conf에 위치한다.

 

수정 전
수정 후

 

  텍스트 에디터 명령어로 apache2.conf 파일을 열어서 위 사진에 표시된 부분을 확인하면 기본값으로 Indexes로 설정되어있다. Indexes가 입력되어 있으면 디렉터리 리스팅을 허용한다는 의미이다. 디렉터리 리스팅을 허용하지 않으려면 Indexes 문자를 제거해 주면 된다. httpd.conf 혹은 apache2.conf 파일에서 설정을 변경 후 적용하려면 재시작을 하거나 apachectl graceful 명령어를 입력해주어야 한다.

 

디렉터리 리스팅 허용 거부 설정 후

 

  마지막으로 웹 브라우저 주소창에 해당 디렉터리 경로를 입력하여 디렉터리 리스팅 설정이 정상적으로 적용됐는지 확인한다.