CAPEC-170
Web Application Fingerprinting
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.
Abstraction
Detailed
Typical severity
Low
Likelihood of attack
High
Understand the attack
What is this attack pattern?
Execution flow
How does the attack proceed, step by step?
Explore
Request fingerprinting
Techniques used
- Use automated tools or send web server specific commands to web server and then receive server's response.
Experiment
Increase the accuracy of server fingerprinting of Web servers
Techniques used
- 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.
Identify Web Application Software
Techniques used
- 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.
Identify Backend Database Version
Techniques used
- Use tools to send bogus SQL query to the server and check error pages.
Requirements
What does the attack require?
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
- 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.
Impact
What does a successful attack lead to?
Affected scopes: Confidentiality
Defence
How is it prevented and mitigated?
Real world