본문 바로가기

old/Cyber Security

사이버 보안: 디렉터리 인덱싱이란?

반응형

정의

디렉터리 인덱싱 취약점은 웹 애플리케이션에서 발생하는 보안 취약점 중 하나입니다. 이 취약점은 웹 애플리케이션이 사용자의 입력을 검증하지 않고 디렉터리 경로를 동적으로 생성하는 경우에 발생할 수 있습니다.

특정 디렉터리에 초기 페이지 (index.html, home.html, default.asp 등)의 파일이 존재하지 않을 때 자동으로 디렉터리 리스트를 출력하는 취약점

취약점 발생 지점 리스트

  • 모든 페이지

취약점 검증 방법

  • example.com/경로1/경로2/페이지 일때, example.com/경로1/경로2/를 테스트
  • example.com/경로1/경로2/페이지 일때, example.com/경로1/../../../를 테스트
  • example.com/ 일때, example.com/index.php를 테스트
  • example.com/ 일때, example.com/를 테스트
  • php+아파치의 경우 기본 생성 파일
    • **/var/www/html/**index.php
    • /var/www/html/.htaccess
    • **/etc/php/**php.ini
    • **/var/log/apache2/**error_log
    • **/var/log/apache2/**access_log

공격법

공격 시나리오

  1. 공격자는 주소창의 경로에 대해서 탐구합니다.
  2. 공격자는 사용자 입력을 통해 디렉터리 경로에 영향을 주는 것을 확인합니다.
  3. 공격자는 디렉터리 경로를 이용하여 웹 서버의 파일 시스템에 접근하거나 실행 가능한 파일을 호출하는 등의 악용을 시도합니다.

발생 과정

세부 과정 설명

  1. 웹 애플리케이션은 사용자 입력을 기반으로 디렉터리 경로를 동적으로 생성합니다.
  2. 디렉터리 경로가 취약점으로 인해 노출되어 악의적인 사용자에게 전달됩니다.
  3. 공격자는 노출된 디렉터리 경로를 이용하여 웹 서버의 파일 시스템에 접근하거나 실행 가능한 파일을 호출하는 등의 악용을 시도합니다.

대응방법

  1. 사용자 입력의 유효성을 검증: 사용자로부터 입력받은 값에 대해 유효성 검증을 수행하여 허용되는 문자나 형식으로 제한합니다. 예를 들어, 허용되는 문자 집합을 정의하거나 입력 값의 길이를 제한하는 등의 검증을 수행합니다.
  2. 화이트리스트 필터링: 사용자 입력을 처리할 때 화이트리스트 방식을 사용하여 허용되는 디렉터리 이름만 허용하고, 그 외의 문자나 경로 구분자를 거부합니다.
  3. 경로 매핑 사용: 사용자 입력을 기반으로 디렉터리 경로를 생성하는 대신, 디렉터리 매핑 테이블을 사용하여 입력 값을 키로 하여 실제 디렉터리 경로와 매핑시킵니다. 이렇게 하면 사용자 입력을 직접 디렉터리 경로에 적용하지 않아도 됩니다.
반응형