Home > CAPEC List > CAPEC-170: Web Application Fingerprinting (Version 2.10)  

CAPEC-170: Web Application Fingerprinting

 
Web Application Fingerprinting
Definition in a New Window Definition in a New Window
Attack Pattern ID: 170
Abstraction: Detailed
Status: Draft
Completeness: Complete
Presentation Filter:
+ Summary

An attacker sends a series of probes to a web application in order to elicit version-dependent and type-dependent behavior that assists in identifying the target. An attacker could learn information such as software versions, error pages, and response headers, variations in implementations of the HTTP protocol, directory structures, and other similar information about the targeted service. This information can then be used by an attacker to formulate a targeted attack plan. While web application fingerprinting is not intended to be damaging (although certain activities, such as network scans, can sometimes cause disruptions to vulnerable applications inadvertently) it may often pave the way for more damaging attacks.

+ Attack Execution Flow
Explore
  1. Request fingerprinting:

    Use automated tools or send web server specific commands to web server and wait for server's response.

    Attack Step Techniques

    IDAttack Step Technique DescriptionEnvironments
    1

    Use automated tools or send web server specific commands to web server and then receive server's response.

    env-Web

    Indicators

    IDTypeIndicator DescriptionEnvironments
    1Positive

    HTTP response headers contain fingerprinting sensitive fields indicating server's vendors and versions.

    env-Web
    2Inconclusive

    HTTP response headers do not contain fingerprinting sensitive fields indicating server's vendors and versions.

    env-Web

    Outcomes

    IDTypeOutcome Description
    1Success
    A list of fingerprinting sensitive information from HTTP response headers.
    1Failure
    There is no HTTP response header information available.

    Security Controls

    IDTypeSecurity Control Description
    1Detective
    Web application firewall may detect a large amount of HTTP requests from the same host.
Experiment
  1. Increase the accuracy of server fingerprinting of Web servers:

    Attacker usually needs to send several different commands to accurately identify the web server. Attacker can also use automated tools to send requests to the server. The responses of the server may be different in terms of protocol behavior.

    Attack Step Techniques

    IDAttack Step Technique DescriptionEnvironments
    1

    Observe the ordering of the several HTTP response headers. The ordering of the header of each server may have unique identities.

    env-Web
    2

    Send bad requests or requests of nonexistent pages to the server.

    env-Web
    3

    Attacker takes existing automated tools to recognize the type and the version of the web server in use.

    env-Web

    Indicators

    IDTypeIndicator DescriptionEnvironments
    1Positive

    Find different inner reordering of headers in HTTP response due to different versions of the server.

    env-Web
    2Positive

    Every server answers to a Bad request in a different way due to different versions of the server.

    env-Web
    3Positive

    Find signatures of web servers in database of automated tools.

    env-Web
    4Negative

    HTTP response headers all look like identical.

    env-Web

    Outcomes

    IDTypeOutcome Description
    1Success
    The attacker successfully identifies server's vendors and versions.

    Security Controls

    IDTypeSecurity Control Description
    1Detective
    Alert on standard fingerprinting probes. Use the same vulnerability catalogs that adversaries use.
    2Detective
    Alert on bad request.
    3Preventative
    Obfuscate server fields of HTTP response.
    4Preventative
    Hide inner ordering of HTTP response header.
    5Preventative
    Customizing HTTP error codes such as 404 or 500.
  2. Identify Web Application Software:

    After the web server platform software has been identified, the attacker start to identify web application technologies such as ASP, .NET, PHP and Java on the server.

    Attack Step Techniques

    IDAttack Step Technique DescriptionEnvironments
    1

    Examine the file name extensions in URL, for example .php indicates PHP script interfaced with Apache server.

    env-Web
    2

    Examine the HTTP Response Headers. This may leak information about software signatures

    env-Web
    3

    Examine Cookies that may contain server's software information.

    env-Web
    4

    Check error pages.

    env-Web

    Indicators

    IDTypeIndicator DescriptionEnvironments
    1Positive

    File name extensions can be found in the URL.

    env-Web
    2Positive

    HTTP Response headers show software version.

    env-Web
    3Positive

    Cookies leak information for server's version.

    env-Web
    4Positive

    From error messages, the stack trace of errors and exceptions may also explicitly tell application software information.

    env-Web

    Outcomes

    IDTypeOutcome Description
    1Success
    File name extensions can be found in the URL.
    1Success
    HTTP Response headers show software version.
    1Success
    Cookies leak information for server's version.
    1Success
    From error messages, the stack trace of errors and exceptions may also explicitly tell application software information.
    1Success
    The attacker successfully identifies web application software vendors and versions.

    Security Controls

    IDTypeSecurity Control Description
    1Detective
    Alert on standard fingerprinting probes. Use the same vulnerability catalogs that adversaries use.
    2Detective
    Alert on bad request.
    3Preventative
    Hide URL file extension.
    4Preventative
    Hide HTTP response header software information filed.
    5Preventative
    Hide cookie's software information filed
    6Preventative
    Appropriately deal with error messages.
  3. Identify Backend Database Version:

    Determining the database engine type can assist attackers' attempt to successfully execute SQL injection. Some database API such as ODBC will show a database type as part of the driver information when reporting an error.

    Attack Step Techniques

    IDAttack Step Technique DescriptionEnvironments
    1

    Use tools to send bogus SQL query to the server and check error pages.

    env-Web

    Indicators

    IDTypeIndicator DescriptionEnvironments
    1Positive

    Get error messages from SQL response.

    env-Web
    2Negative

    No error messages.

    env-Web

    Outcomes

    IDTypeOutcome Description
    1Success
    The attacker successfully identifies database type from error messages.
    2Failure
    The attacker fails to identify database type from error messages.

    Security Controls

    IDTypeSecurity Control Description
    1Detective
    Alert on standard fingerprinting probes. Use the same vulnerability catalogs that adversaries use.
    2Detective
    Alert on bad request.
    3Preventative
    Obfuscate database type in Database API's error message.
+ Attack Prerequisites
  • Any web application can be fingerprinted. However, some configuration choices can limit the useful information an attacker may collect during a fingerprinting attack.

+ Typical Severity

Low

+ Typical Likelihood of Exploit

Likelihood: High

+ Methods of Attack
  • Analysis
+ Examples-Instances

Description

An attacker sends malformed requests or requests of nonexistent pages to the server. Consider the following HTTP responses.

Response from Apache 1.3.23

$ nc apache.server.com
80 GET / HTTP/3.0

HTTP/1.1 400 Bad Request
Date: Sun, 15 Jun 2003 17:12: 37 GMT
Server: Apache/1.3.23
Connection: close
Transfer: chunked
Content-Type: text/HTML; charset=iso-8859-1

Response from IIS 5.0

$ nc iis.server.com 80
GET / HTTP/3.0

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Content-Location: http://iis.example.com/Default.htm
Date: Fri, 01 Jan 1999 20:14: 02 GMT
Content-Type: text/HTML
Accept-Ranges: bytes Last-Modified: Fri, 01 Jan 1999 20:14: 02 GMT
ETag: W/e0d362a4c335be1: ae1
Content-Length: 133

[R.170.2]

+ Attacker Skills or Knowledge Required

Skill or Knowledge Level: Low

Attacker knows how to send HTTP request, SQL query to a web application.

+ Resources Required

While simple fingerprinting can be accomplished with only a web browser, for more thorough fingerprinting an attacker requires a variety of tools to collect information about the target. These tools might include protocol analyzers, web-site crawlers, and fuzzing tools. Footprinting a service adequately may also take a few days if the attacker wishes the footprinting attempt to go undetected.

+ Solutions and Mitigations

Implementation: Obfuscate server fields of HTTP response.

Implementation: Hide inner ordering of HTTP response header.

Implementation: Customizing HTTP error codes such as 404 or 500.

Implementation: Hide URL file extension.

Implementation: Hide HTTP response header software information filed.

Implementation: Hide cookie's software information filed.

Implementation: Appropriately deal with error messages.

Implementation: Obfuscate database type in Database API's error message.

+ Attack Motivation-Consequences
ScopeTechnical ImpactNote
Confidentiality
"Varies by context"
Information Leakage
+ Injection Vector

Any HTTP Request transport variables (HTTP Headers, etc.)

+ Activation Zone

HTTP request and response

+ Payload Activation Impact

Leakage server's information.

+ Purposes
  • Reconnaissance
+ CIA Impact
Confidentiality Impact: MediumIntegrity Impact: LowAvailability Impact: Low
+ Technical Context
Architectural Paradigms
Web
Client-Server
n-Tier
Frameworks
All
Platforms
All
Languages
All
+ References
[R.170.1] Saumil Shah. "An Introduction to HTTP fingerprinting". <http://net-square.com/httprint/httprint_paper.html>.
[R.170.2] [REF-4] "OWASP Testing Guide". Testing for Web Application Fingerprint (OWASP-IG-004). v4 [DRAFT]. The Open Web Application Security Project (OWASP). <http://www.owasp.org/index.php/Testing_for_Web_Application_Fingerprint_%28OWASP-IG-004%29>.
[R.170.3] "HTTP 1.1 Specification (RFC 2616)". IETF RFC. <http://www.ietf.org/rfc/rfc2616.txt>.
[R.170.4] [REF-1] "WASC Threat Classification 2.0". WASC-45 - Fingerprinting. The Web Application Security Consortium (WASC). 2010. <http://projects.webappsec.org/Fingerprinting>.
+ Content History
Submissions
SubmitterOrganizationDateSource
CAPEC Content TeamThe MITRE Corporation2014-06-23Internal_CAPEC_Team
Modifications
ModifierOrganizationDateCommentsSource
CAPEC Content TeamThe MITRE Corporation2015-11-09Updated Attack_PhasesInternal
CAPEC Content TeamThe MITRE Corporation2015-12-07Updated Attack_PhasesInternal
CAPEC Content TeamThe MITRE Corporation2017-01-09Updated Attack_PhasesInternal
CAPEC Content TeamThe MITRE Corporation2017-05-01Updated Attack_PhasesInternal
More information is available — Please select a different filter.
Page Last Updated or Reviewed: May 01, 2017