New to CAPEC? Start Here
Home > CAPEC List > CAPEC-170: Web Application Fingerprinting (Version 3.9)  

CAPEC-170: Web Application Fingerprinting

Attack Pattern ID: 170
Abstraction: Detailed
View customized information:
+ Description
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.
+ Likelihood Of Attack


+ Typical Severity


+ Relationships
Section HelpThis table shows the other attack patterns and high level categories that are related to this attack pattern. These relationships are defined as ChildOf and ParentOf, and give insight to similar items that may exist at higher and lower levels of abstraction. In addition, relationships such as CanFollow, PeerOf, and CanAlsoBe are defined to show similar attack patterns that the user may want to explore.
ChildOfStandard Attack PatternStandard Attack Pattern - A standard level attack pattern in CAPEC is focused on a specific methodology or technique used in an attack. It is often seen as a singular piece of a fully executed attack. A standard attack pattern is meant to provide sufficient details to understand the specific technique and how it attempts to accomplish a desired goal. A standard level attack pattern is a specific type of a more abstract meta level attack pattern.541Application Fingerprinting
Section HelpThis table shows the views that this attack pattern belongs to and top level categories within that view.
+ Execution Flow
  1. Request fingerprinting: Use automated tools or send web server specific commands to web server and wait for server's response.

    Use automated tools or send web server specific commands to web server and then receive server's response.
  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.

    Observe the ordering of the several HTTP response headers. The ordering of the header of each server may have unique identities.
    Send bad requests or requests of nonexistent pages to the server.
    Attacker takes existing automated tools to recognize the type and the version of the web server in use.
  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.

    Examine the file name extensions in URL, for example .php indicates PHP script interfaced with Apache server.
    Examine the HTTP Response Headers. This may leak information about software signatures
    Examine Cookies that may contain server's software information.
    Check error pages.
  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.

    Use tools to send bogus SQL query to the server and check error pages.
+ Prerequisites
Any web application can be fingerprinted. However, some configuration choices can limit the useful information an attacker may collect during a fingerprinting attack.
+ Skills Required
[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.
+ Consequences
Section HelpThis table specifies different individual consequences associated with the attack pattern. The Scope identifies the security property that is violated, while the Impact describes the negative technical impact that arises if an adversary succeeds in their attack. The Likelihood provides information about how likely the specific consequence is expected to be seen relative to the other consequences in the list. For example, there may be high likelihood that a pattern will be used to achieve a certain impact, but a low likelihood that it will be exploited to achieve a different impact.
+ 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.
+ Example Instances

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
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 80
GET / HTTP/3.0

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
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


+ Taxonomy Mappings
Section HelpCAPEC mappings to ATT&CK techniques leverage an inheritance model to streamline and minimize direct CAPEC/ATT&CK mappings. Inheritance of a mapping is indicated by text stating that the parent CAPEC has relevant ATT&CK mappings. Note that the ATT&CK Enterprise Framework does not use an inheritance model as part of the mapping to CAPEC.
Relevant to the ATT&CK taxonomy mapping (see parent )
+ References
[REF-36] Saumil Shah. "An Introduction to HTTP fingerprinting". <>.
[REF-37] "OWASP Web Security Testing Guide". Testing for Web Application Fingerprint (OWASP-IG-004). v4 [DRAFT]. The Open Web Application Security Project (OWASP). <>.
[REF-38] "HTTP 1.1 Specification (RFC 2616)". IETF RFC. <>.
[REF-39] "WASC Threat Classification 2.0". WASC-45 - Fingerprinting. The Web Application Security Consortium (WASC). 2010. <>.
+ Content History
Submission DateSubmitterOrganization
(Version 2.6)
CAPEC Content TeamThe MITRE Corporation
Modification DateModifierOrganization
(Version 2.7)
CAPEC Content TeamThe MITRE Corporation
Updated Attack_Phases
(Version 2.8)
CAPEC Content TeamThe MITRE Corporation
Updated Attack_Phases
(Version 2.9)
CAPEC Content TeamThe MITRE Corporation
Updated Attack_Phases
(Version 2.10)
CAPEC Content TeamThe MITRE Corporation
Updated Attack_Phases
(Version 2.11)
CAPEC Content TeamThe MITRE Corporation
Updated Attack_Phases
(Version 2.12)
CAPEC Content TeamThe MITRE Corporation
Updated Attack_Phases, References
(Version 3.1)
CAPEC Content TeamThe MITRE Corporation
Updated Related_Weaknesses
(Version 3.3)
CAPEC Content TeamThe MITRE Corporation
Updated Example_Instances
(Version 3.8)
CAPEC Content TeamThe MITRE Corporation
Updated Example_Instances
More information is available — Please select a different filter.
Page Last Updated or Reviewed: July 31, 2018