Common Attack Pattern Enumeration and Classification
A Community Resource for Identifying and Understanding Attacks
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.
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
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
Date: Fri, 01 Jan 1999 20:14: 02 GMT
Accept-Ranges: bytes Last-Modified: Fri, 01 Jan 1999 20:14: 02 GMT
ETag: W/e0d362a4c335be1: ae1
Skill or Knowledge Level: Low
Attacker knows how to send HTTP request, SQL query to a web application.
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.
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.
[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>.
More information is available — Please select a different filter.