[웹 취약점 진단/모의해킹/해킹] 디렉터리 인덱싱
- 정보보안/Web Hacking
- 2024. 11. 17.
목차
DI - 디렉터리 인덱싱
■ 점검내용
웹 서버 내 디렉터리 인덱싱 취약점 존재 여부 점검
■ 점검목적
디렉터리 인덱싱 취약점을 제거하여 특정 디렉터리 내 불필요한 파일 정보의 노출을 차단
■ 보안위협
해당 취약점이 존재할 경우 브라우저를 통해 특정 디렉터리 내 파일 리스트를 노출하여 응용시스템의 구조를 외부에 허용할 수 있고, 민감한 정보가 포함된 설정 파일 등이 노출될 경우 보안상 심각한 위험을 초래할
수 있음
■ 참고
※ 디렉터리 인덱싱 취약점: 특정 디렉터리에 초기 페이지 (index.html, home.html, default.asp 등)의 파일이 존재하지 않을 때 자동으로 디렉터리 리스트를 출력하는 취약점
점검대상 및 판단기준
■ 대상 : 웹 서버
양호
디렉터리 파일 리스트가 노출되지 않는 경우
취약
디렉터리 파일 리스트가 노출되는 경우
■ 조치방법
웹 서버 설정을 변경하여 디렉터리 파일 리스트가 노출되지 않도록 설정
점검 및 조치 방법
■ 점검방법
Step 1) URL 경로 중 확인하고자 하는 디렉터리까지만 주소창에 입력하여 인덱싱 여부 확인
Step 2) 디렉터리 끝에 %3f.jsp 문자열을 붙여 디렉터리 인덱싱이 되는지 확인
■ 보안설정방법
* 웹 서버 환경설정에서 디렉터리 인덱싱 기능 제거
※ 웹 서버 별 상세 설정
∎ Apache
httpd.conf 파일 내 DocumentRoot 항목의 Options에서 Indexes 제거 Indexes가 해당 디렉터리의 파일 목록을 보여주는 지시자임 설정 전 <Directory “/var/www/html”> Options Indexes </Directory> 설정 후 <Directory “/var/www/html”> Options </Directory> |
∎ IIS 7.0
설정 > 제어판 > 관리도구 > “인터넷 서비스 관리자” 선택 후 해당 웹 사이트에서 우클릭 후 등록 정보 > [홈 디렉터리] 탭 > [디렉터리 검색] 체크 해제
∎ IIS 7.5/8.0/8.5/10.0
IIS(인터넷 정보 서비스) 관리자 > [해당 웹 사이트] > [IIS] > [디렉터리 검색] 선택 우측의 [사용 안 함] 버튼을 눌러 비활성화
∎ WebtoB 설정
Step 1) ${WEBTOBDIR}/config/http.m 파일 Options 항목에서 index 옵션 삭제 또는, –index 옵션으로 설정 ( default: -index )
Step 2) ${WEBTOBDIR}/config/http.m에서 확인
# ${WEBTOBDIR}/config/http.m *NODE GuideSample WEBTOBDIR=”/home/user/webtob”, SHMKEY = 54000, DOCROOT=”/home/user/webtob/docs”, PORT = “8080”, HTH = 1, LOGGING = "log1", ERRORLOG = "log2", Options = “-index" |
Step 3) 확인 후 설정파일 컴파일 및 재구동
# wscfl -i http.m (http.m 파일 컴파일)
# wsdown
# wsboot (재구동)
∎iPlanet
Step 1) 관리자 콘솔에서 설정 (※ 1번 또는, 2번 방법 중 선택 적용)
관리자 콘솔 > Server Name > Virtual Server Class > Class Manage > Content Mgmt > Document Preferences > Directory Indexing 항목 "None" 설정
Step 2) 설정 파일에서 설정
/[iPlanet Dir]/https-[Server_name]/config/obj.c
∎%3f.jsp 취약점 제거
웹 서버를 Apache로 사용한다면 아래와 같이 설정하여 %3f.jsp 문자를 필터링해야 하며, Resin이나 Tomcat을 사용한다면 최신 버전으로 업그레이드함
<LocationMatch “/(%3f|\?)\.jsp”> AllowOverride None Deny from all </LocationMatch> |
Resin 2.1.x 버전은 최신 버전으로 업그레이드하거나 아래와 같이 설정할 수 있음
Step 1) Resin 환경설정 파일 (resin.conf)에서 가상 디렉터리 설정 부분인 “web-app id”를 찾음
Step 2) 아래 내용 추가
<directory-servlet>none</directory-servlet>
※ 주의할 점: 모든 가상 디렉터리에 적용 필요
■ 조치 시 영향 : 일반적인 경우 영향 없음