■ 개요
- 웹 어플리케이션의 민감한 정보가 개발자의 부주의로 인해 노출되는 것으로 중요 정보(관리자 계정 및 테스트 계정 등)가 노출되거나 에러 발생 시 과도한 정보(애플리케이션 정보, DB 정보, 웹 서버 구성 정보 등)가 노출될 경우 공격자들의 2차 공격을 위한 정보로 활용될 수 있는 취약점
- 웹 취약점 진단 과정에서 소스 코드 및 점검 도구를 통해 중요 정보 또는 에러 메시지 내 정보 누출 여부를 파악
■ 정보 누출 체크리스트
① 에러 페이지 내 버전 정보 또는 실제 경로 노출 여부 확인
② 웹 이용에 필요한 메소드(GET, POST)를 제외한 다른 메소드 사용 가능 여부 확인
③ 홈페이지 내 주민등록번호, 연락처 등 민감한 정보가 노출되는지 여부 확인
④ 소스 코드 또는 점검 페이지 내 인프라 정보 노출 여부 확인
⑤ 소스 코드 내 계정 정보 또는 관리자 페이지 노출 여부 확인
■ 실습 전 사전 지식
□ WebDAV 취약점(불필요한 메소드 사용)
- HTTP 프로토콜의 확장 기능으로 웹 서버에 저장된 문서와 파일을 편집하고 관리할 수 있도록 만든 HTTP 확장 서비스로, 올바른 보안설정이 되어 있지 않거나 보안상 취약한 메소드를 활성화 했을 경우 악성 파일 업로드, 중요 파일 삭제 등을 할 수 있는 취약점
- 주요정보통신기반시설 웹 취약점 진단 기준으로 9.정보 누출 항목에 해당
■ WebDAV 취약점 실습 환경
- Kali Linux
- Bee Box
■ WebDAV 취약점 실습 환경 1
Step 1) WebDAV 취약점 실습을 위하여 Beebox로 접근 후 Insecure WebDAV Configuration으로 이동. 하기에 기재된 'WebDAV' 클릭 시 디렉토리 인덱싱 취약점이 있는 페이지로 리다이렉트 확인
Step 2) 취약점 여부를 확인하기 위하여 nikto를 사용하여 스캔해본 결과, 다수의 메소드가 사용가능 한것을 확인. 웹 프록시인 burp suite를 사용하여 악성 파일 업로드 등이 가능한 PUT 메소드를 통해 파일 업로드 시도 시 정상적으로 업로드 됨을 확인.
Step 3) 칼리 리눅스에서 제공하는 웹쉘 복사 후 PUT 메소드 사용하여 파일 업로드 진행 후 웹쉘 실행 시 정상 동작 확인.
■ WebDAV 취약점 실습 환경 2
Step 1) WebDAV 취약점 실습을 위하여 Beebox로 접근 후 Insecure WebDAV Configuration으로 이동. 하기에 기재된 'WebDAV' 클릭 시 디렉토리 인덱싱 취약점이 있는 페이지로 리다이렉트 확인
Step 2) curl 명령어를 통해 사용가능한 메소드 확인 시, 다수의 메소드 사용 가능함을 확인.
■ 정보 누출 점검 방법
① 수동 점검
- 웹 소스 코드 내 중요 정보(ex, 주민등록번호, 계정 정보) 또는 관리자 페이지 경로 등이 노출되는 지 여부를 확인
② 자동화 도구를 통한 점검
- 자동화 도구(Ex, Burp Suite Pro, Acunetix 등)를 사용하여 정보를 수집
- 아래 예시는 Kali linux에서 제공하는 nmap 도구를 예시로 들었으며, 자세한 사항은 하기 링크 참조
■ 대응 방안
1. GET, POST를 제외한 불필요한 메소드 제한 설정
□ Apache
- Apache 설정 파일인 "httpd.conf"에서 LimitExcept 지시자를 활용하여 GET, POST 메소드를 제외한 불필요한 메소드 사용 제한
<Directory /> // 메소드 제한을 설정할 Directory 설정
<LimitExcept GET POST>
Order deny,allow // GET, POST 메소드 허용 설정
Deny from all // GET, POST 메소드 이외 모든 메소드 사용 제한 설정
< /LimitExcept>
</Directory>
□ IIS
- “IIS 관리자” 접속 → Feature View에서 “요청 필터링” 클릭 → “동사 거부” 클릭 후 제한할 메소드 입력
2. 웹 서버 보안 설정을 통해 서버 버전 노출 방지
□ Apache
- Apache 설정 파일인 “httpd.conf”에서 ‘ServerTokens’ 값을 ‘Prod’로 설정 및 ‘ServerSignature’ 값을 ‘Off’로 설정해, Apache 버전 정보를 숨겨 외부로 노출되는 것을 차단
$ sudo vim /etc/httpd/conf/httpd.conf
...
ServerTokens Prod // ‘Prod’ : 웹 서버 이름만 응답
ServerSignature Off // Apache 버전 정보 웹 브라우저 노출 미설정
...
□ IIS
- “IIS 관리자” 접속 → “URL 재작성” 클릭 → “규칙 추가” 클릭 → “아웃바운드 규칙”에서 “빈 규칙” 클릭 후 버전 정보를 제외한 웹 서버 입력
3. HTTP 응답 에러 코드 페이지에 대해 별도의 오류(에러) 페이지로 Redirect되도록 설정
□ Apache
- Apache 설정 파일인 “httpd.conf”에서 서버 응답코드 별 별도 생성한 에러 페이지로 redirect 되도록 설정
ErrorpageDocument 404 /404.html // 웹 서버내 미리 생성한 페이지로 전환
ErrorpageDocument 403 /403.html
ErrorpageDocument 500 /500.html
□ IIS
- “IIS 관리자” 접속 → Feature View에서 “오류 페이지” 클릭 → “추가” 클릭 후 별도로 생성한, Redirect할 오류(에러) 페이지 추가
'모의해킹&웹취약점진단 > 주•통기반 웹 취약점 점검' 카테고리의 다른 글
11. XSS(크로스 사이트 스크립팅) 취약점 (0) | 2023.12.04 |
---|---|
13. 불충분한 인증 취약점 (0) | 2023.12.04 |
07. XPath 인젝션 (0) | 2023.10.19 |
05. SQL Injection (1) | 2023.10.19 |
01. buffer overflow 취약점 (0) | 2023.10.12 |