Steps. 1. 개요 2. 테스트 방법
|
1. 개요
웹 서버 핑거프린팅 (Web server fingerprinting)는 침투테스트에서 중요한 작업이다. 실행중인 웹 서버의 버전 및 종류를 알고 있으면, 알려진 취약점을 선택하여 적절한 공격을 진행 할 수 있다. Web 서버의 종류를 안다는 것은 테스트 프로세스에 도움이 되며 테스트 과정을 변경할 수 있다.
웹 서버의 소프트웨어의 각 버전을 확인하는 방법은 특정 명령을 전송하여, 명령에 의한 응답값을 분석하여 도출 할 수 있다. 하지만 특정 명령을 전송하였을 때, 동일한 반응을 하지 않는다. 그렇기 때문에 여러 명령을 전송하여 응답값을 비교하여 정확도를 높여야 한다.
2. 테스트 방법
웹 서버를 식별하는 간단하고 가장 기본적인 형태는 HTTP 응답 헤더에서 서버 필드를 확인하는 것이다. 여기서는 netcat을 이용하여 테스트를 진행한다.
아래는 HTTP Request에 대한 HTTP Response 결과이다.
여기서 웹 서버의 버전을 어떻게 확인할 것인가? HTTP Response 헤더에서 Server 필드를 확인하면 된다. Server 필드를 확인하였을 때 확인한 웹 서버는 Ubuntu에서 동작하고 있으며, Apache 2.2.8 버전으로 추측된다. 다른 HTTP Response 헤더를 살펴보자.
위 HTTP Response 헤더의 Server 필드를 확인해보자. 웹 서버는 Windows에서 동작하고 있으며, IIS 8.0 버전으로 추측된다.
그러나,이 테스트 방법은 정확도가 제한된다. 웹 사이트가 모호하거나 서버의 배너 문자열을 수정할 수있는 몇 가지 방법이 있다. 예를 들어, 아래와 같이 서버 필드의 내용을 수정되었다고 가정해보자.
403 HTTP/1.1 Forbidden Date: Mon, 16 Jun 2016 02:41: 27 GMT Server: Unknownr/1.0 Connection: close Content-Type: text/HTML
이 경우, Server 필드의 내용이 임의로 수정되어, 테스터는 이러한 정보를 기반으로 실행되고 있는 웹 서버의 종류를 알 수 없게 된다.
수동으로 웹 서버의 헤더를 분석하는 방법도 있지만, httprint와 같은 자동화된 도구를 사용할 수있다.
Reference : OWASP (https://www.owasp.org)
'Vulnerability Assessment > Web Application' 카테고리의 다른 글
Blind SQL Injection Cheatsheet (블라인드 SQL 인젝션 Cheatsheet) (0) | 2022.02.11 |
---|---|
HTTP Methods 확인 (0) | 2016.07.11 |
관리자 인터페이스 (페이지) 확인 (0) | 2016.07.03 |
웹페이지 소스코드에 중요 정보 노출 확인 (0) | 2016.07.02 |
검색 엔진을 이용하여 노출된 정보 확인 (0) | 2016.07.02 |