웹에서 디렉토리 리스팅 (디렉토리 인덱싱)이란 서버의 특정 디렉토리 내에 있는 파일 목록을 사용자에게 보여주는 기능입니다. 이는 주로 웹 서버가 설정된 상태에 따라 파일 목록을 자동으로 생성하고 표시하는 것을 의미합니다.
- 파일 목록 표시: 디렉토리 내 모든 파일 및 하위 디렉토리를 나열합니다.
- 자동 생성: 웹 서버 설정에 따라 자동으로 파일 목록을 생성합니다.
- 서버 설정에 따라 달라짐: 서버의 설정 파일에 따라 인덱싱 여부가 결정됩니다.
예를 들어, 웹 서버에서 디렉토리 인덱싱을 사용하면 특정 디렉토리에 있는 파일들의 목록을 사용자가 쉽게 볼 수 있도록 할 수 있습니다.
보안 문제:
- 디렉토리 인덱싱은 보안상 취약점을 초래할 수 있습니다. 공격자가 디렉토리 구조를 탐색하여 민감한 파일을 발견하고 악용할 수 있기 때문입니다. 이를 방지하기 위해 서버 설정 파일에서 디렉토리 인덱싱 기능을 비활성화하는 것이 좋습니다.
디렉토리 인덱싱 취약점을 점검하는 방법은 다음과 같습니다:
- URL 경로 점검: 웹 브라우저의 주소창에 디렉토리 경로를 입력하여 디렉토리 목록이 표시되는지 확인합니다.
- 특수 문자 점검: 디렉토리 끝에 %3f.jsp 문자열을 붙여 디렉토리 인덱싱이 되는지 확인합니다. 예를 들어, http://www.test.com/test/%3f.jsp와 같이 입력합니다.
- 웹 서버 설정 확인: 웹 서버의 설정 파일에서 디렉터리 인덱싱 기능이 활성화되어 있는지 확인합니다. Apache의 경우 httpd.conf 파일에서 Indexes 옵션이 활성화 되어 있는지 확인합니다.
- 접근 권한 설정 확인: 파일과 디렉토리의 접근 권한이 적절하게 설정되어 있는지 점검합니다.
디렉토리 인덱싱(Directory Indexing)은 웹 서버에서 자주 발생하는 보안 취약점 중 하나입니다. 이 취약점은 공격자가 서버의 디렉터리 구조를 탐색할 수 있게 해주며, 민감한 파일이나 데이터를 무단으로 열람하거나 다운로드할 수 있습니다.
- 디렉터리 인덱싱 기능 비활성화: 웹 서버의 설정 파일에서 디렉터리 인덱싱 기능을 비활성화합니다. 예를 들어, Apache 서버에서는 httpd.conf 파일에서 Indexes 옵션을 제거하면 됩니다.
- 인덱스 파일 제공: 각 디렉토리에 인덱스 파일을 제공하여 디렉터리 목록을 보지 못하도록 합니다. 예를 들어, index.html 파일을 각 디렉토리에 추가합니다.
- WAF(웹 애플리케이션 방화벽) 사용: WAF를 사용하여 디렉터리 인덱싱과 같은 요청을 차단합니다.
- 접근 권한 설정: 디렉터리와 파일에 적절한 접근 권한을 설정하여 민감한 정보를 보호합니다.