CAPEC-170

Web Application Fingerprinting
High
Low
Draft
2014-06-23
00h00 +00:00
2022-09-29
00h00 +00:00
Alerte pour un CAPEC
Stay informed of any changes for a specific CAPEC.
Notifications manage

Descriptions CAPEC

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.

Informations CAPEC

Execution Flow

1) Explore

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

Technique
  • Use automated tools or send web server specific commands to web server and then receive server's response.
2) Experiment

[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.

Technique
  • 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.
3) Experiment

[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.

Technique
  • 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.
4) Experiment

[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.

Technique
  • 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

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.

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.

Related Weaknesses

CWE-ID Weakness Name

CWE-497

Exposure of Sensitive System Information to an Unauthorized Control Sphere
The product does not properly prevent sensitive system-level information from being accessed by unauthorized actors who do not have the same level of access to the underlying system as the product does.

References

REF-36

An Introduction to HTTP fingerprinting
Saumil Shah.
http://www.net-square.com/httprint_paper.html

REF-37

OWASP Web Security Testing Guide
https://www.owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/01-Information_Gathering/08-Fingerprint_Web_Application_Framework

REF-38

HTTP 1.1 Specification (RFC 2616)
http://www.ietf.org/rfc/rfc2616.txt

REF-39

WASC Threat Classification 2.0
http://projects.webappsec.org/Fingerprinting

Submission

Name Organization Date Date release
CAPEC Content Team The MITRE Corporation 2014-06-23 +00:00

Modifications

Name Organization Date Comment
CAPEC Content Team The MITRE Corporation 2015-11-09 +00:00 Updated Attack_Phases
CAPEC Content Team The MITRE Corporation 2015-12-07 +00:00 Updated Attack_Phases
CAPEC Content Team The MITRE Corporation 2017-01-09 +00:00 Updated Attack_Phases
CAPEC Content Team The MITRE Corporation 2017-05-01 +00:00 Updated Attack_Phases
CAPEC Content Team The MITRE Corporation 2017-08-04 +00:00 Updated Attack_Phases
CAPEC Content Team The MITRE Corporation 2018-07-31 +00:00 Updated Attack_Phases, References
CAPEC Content Team The MITRE Corporation 2019-04-04 +00:00 Updated Related_Weaknesses
CAPEC Content Team The MITRE Corporation 2020-07-30 +00:00 Updated Example_Instances
CAPEC Content Team The MITRE Corporation 2022-09-29 +00:00 Updated Example_Instances