반응형
정의
디렉터리 인덱싱 취약점은 웹 애플리케이션에서 발생하는 보안 취약점 중 하나입니다. 이 취약점은 웹 애플리케이션이 사용자의 입력을 검증하지 않고 디렉터리 경로를 동적으로 생성하는 경우에 발생할 수 있습니다.
특정 디렉터리에 초기 페이지 (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
공격법
공격 시나리오
- 공격자는 주소창의 경로에 대해서 탐구합니다.
- 공격자는 사용자 입력을 통해 디렉터리 경로에 영향을 주는 것을 확인합니다.
- 공격자는 디렉터리 경로를 이용하여 웹 서버의 파일 시스템에 접근하거나 실행 가능한 파일을 호출하는 등의 악용을 시도합니다.
발생 과정
세부 과정 설명
- 웹 애플리케이션은 사용자 입력을 기반으로 디렉터리 경로를 동적으로 생성합니다.
- 디렉터리 경로가 취약점으로 인해 노출되어 악의적인 사용자에게 전달됩니다.
- 공격자는 노출된 디렉터리 경로를 이용하여 웹 서버의 파일 시스템에 접근하거나 실행 가능한 파일을 호출하는 등의 악용을 시도합니다.
대응방법
- 사용자 입력의 유효성을 검증: 사용자로부터 입력받은 값에 대해 유효성 검증을 수행하여 허용되는 문자나 형식으로 제한합니다. 예를 들어, 허용되는 문자 집합을 정의하거나 입력 값의 길이를 제한하는 등의 검증을 수행합니다.
- 화이트리스트 필터링: 사용자 입력을 처리할 때 화이트리스트 방식을 사용하여 허용되는 디렉터리 이름만 허용하고, 그 외의 문자나 경로 구분자를 거부합니다.
- 경로 매핑 사용: 사용자 입력을 기반으로 디렉터리 경로를 생성하는 대신, 디렉터리 매핑 테이블을 사용하여 입력 값을 키로 하여 실제 디렉터리 경로와 매핑시킵니다. 이렇게 하면 사용자 입력을 직접 디렉터리 경로에 적용하지 않아도 됩니다.
반응형
'old > Cyber Security' 카테고리의 다른 글
사이버 보안: 약한 문자열 강도란? (0) | 2023.09.10 |
---|---|
사이버 보안: 정보 누출이란? (0) | 2023.09.05 |
사이버 보안: LDAP 인젝션이란? (0) | 2023.09.02 |
LDAP 인젝션 치트시트 (0) | 2023.09.01 |
LDAP(Lightweight Directory Access Protocol)이란 (0) | 2023.08.31 |