CAPEC

Common Attack Pattern Enumeration and Classification
Common Attack Pattern Enumeration and Classification

A Community Knowledge Resource for Building Secure Software

Home > CAPEC List > Individual CAPEC Dictionary Definition (Release 1.1)   View the CAPEC List

Individual CAPEC Dictionary Definition (Release 1.1)
Individual CAPEC Dictionary Definition (Release 1.1)

Forceful Browsing
Attack Pattern ID
Pattern Abstraction: Standard

87

Typical Severity

High

Description

Summary

An attacker employs forceful browsing to access portions of a website that are otherwise unreachable through direct URL entry.
Usually, a front controller or similar design pattern is employed to protect access to portions of a web application.
Forceful browsing enables an attacker to access information, perform privileged operations and otherwise reach sections of the web appplication that have been improperly protected.

Attack Execution Flow

Explore
  1. Spider: Using an automated tool, an attacker follows all public links on a web site. He records all the links he finds.

    Attack Step Techniques
    DescriptionEnvironments
    Use a spidering tool to follow and record all linksenv-Web
    Use a proxy tool to record all links visited during a manual traversal of the web application.env-Web
    Outcome
    IDTypeDescription
    c87s1o1SuccessA list of links is created by the attacker.
    Security Controls
    IDTypeDescription
    c87s1s1DetectiveMonitor velocity of page fetching in web logs. Humans who view a page and select a link from it will click far slower and far less regularly than tools. Tools make requests very quickly and the requests are typically spaced apart regularly (e.g. 0.8 seconds between them).
    c87s1s2DetectiveCreate links on some pages that are visually hidden from web browsers. Using IFRAMES, images, or other HTML techniques, the links can be hidden from web browsing humans, but visible to spiders and programs. A request for the page, then, becomes a good predictor of an automated tool probing the application.
    c87s1s3PreventativeActively monitor the application and either deny or redirect requests from origins that appear to be automated.
Experiment
  1. Attempt well known or guessable resource locations: Using an automated tool, an attacker requests a variety of well-known URLs that correspond to administrative, debugging, or other useful internal actions. He records all the positive responses from the server.

    Attack Step Techniques
    DescriptionEnvironments
    Use a spidering tool to follow and record attempts on well known URLsenv-Web
    Use a proxy tool to record all links visited during a manual traversal of attempts on well known URLs.env-Web
    Indicators of Susceptibility
    IDTypeDescriptionEnvironments
    c87s2i1PositiveCommon resource identifiers are used (e.g., /admin/, admin.jsp, admin.aspx, etc.)env-Web
    c87s2i2PositiveWell known middleware or application platforms are used (e.g., Cold Fusion, WebSphere, WebLogic, JBoss, etc.)env-Web
    Outcome
    IDTypeDescription
    c87s3o1SuccessThe attacker discovers one or more unprotected resources.
    Security Controls
    IDTypeDescription
    c87s3s1DetectiveMonitor errors (e.g., 404 not found) from web servers, application servers, and other HTTP infrastructure (e.g., load balancers). Alert on an unusual number of consecutive failures or total failures from a single host. Potentially alert on many failures from many different hosts, but in a relatively short time window.
    c87s3s2DetectiveCreate "honeypot" web pages or scripts that do not actually have any use in the application, and name them common names (e.g., admin.jsp, admin.do, admin.aspx, etc.). Alert when one of these resources is requested.
    c87s3s3PreventativeActively monitor the application and either deny or redirect requests from origins that appear to be generating an unusual amount of failures.
    c87s3s4CorrectiveObtain a list of sensitive areas that should not be directly accessible (e.g., JSPs or other templates that should only be accessible via front controllers). Apply an external mechanism (rule in the load balancer, rule in the reverse proxy, etc.) to intercept and redirect requests for those resources. Ideally use patterns, not specific page names (e.g., /jsp/* instead of a list of individual JSPs). Regularly update the list that is used in operation.
    c87s3s5DetectiveIdentify defaults for platform-specific sensitive resources. If the application does not use those defaults, alert on all requests for them (e.g., http://server:8080/admin/)
Exploit
  1. Use unauthorized resources: By visiting the unprotected resource, the attacker makes use of unauthorized functionality.

    Attack Step Technique
    DescriptionEnvironments
    Access unprotected functions and execute them.env-All
    Security Control
    IDTypeDescription
    c87s4s1DetectiveMalformed log entries are a common side-effect of this kind of attack. E.g., "User xyz deleted by on 10/16/07." The "by on" indicates that no authorized user was recorded. (A good entry would say "user xyz deleted by admin on 10/16/07"). Monitoring of log file entries for correct and consistent output format can indicate this kind of attack succeeding.
  2. View unauthorized data: The attacker discovers and views unprotected sensitive data.

    Attack Step Technique
    DescriptionEnvironments
    Direct request of protected pages that directly access database back-ends. (e.g., list.jsp, accounts.jsp, status.jsp, etc.) env-Web
    Indicator of Susceptibility
    IDTypeDescriptionEnvironments
    c87s5i1PositiveDynamic pages (JSP, ASP, PHP, etc.) exist that divulge sensitive data without first checking authorization.env-Web
Attack Prerequisites

The forcibly browsable pages or accessible resources must be discoverable and improperly protected.

Typical Likelihood of Exploit

Very High A number of automated crawlers as well as other tools are available that generally perform a good job at looking for forcefully browsable pages

Methods of Attack
  • Brute Force
Examples-Instances

Description

A bulletin board application provides an administrative interface at admin.aspx when the user logging in belongs to the administrators group.
An attacker can access the admin.aspx interface by making a direct request to the page. Not having access to the interface appropriately protected allows the attacker to perform admnistrative functions without having to authenticate himself in that role.

Attacker Skill or Knowledge Required

Low: Forcibly browsable pages can be discovered by using a number of automated tools. Doing the same manually is tedious but by no means difficult

Resources Required

A directory listing is helpful but not a requirement. No special resources are required.

Probing Techniques

Following all the links recursively reveals resources that are available

Having a directory listing also points to the available pages and resources in the application that may be forcibly browsable.

Solutions and Mitigations

Authenticate request to every resource. In addition, every page or resource must ensure that the request it is handling has been made in an authorized context.

Forceful browsing can also be made difficult to a large extent by not hard-coding names of application pages or resources. This way, the attacker cannot figure out, from the application alone, the resources available from the present context.

Attack Motivation-Consequences
  • Information Leakage
  • Privilege Escalation
Context Description


Forceful browsing is a consequence of improper access control. The application is designed with an assumption that resources are to be accessed in a certain sequence and that this sequence is immutable.

Pages in an application can request the client's identity each time a request is made or can rely on a controller or filter to do it for them before passing on the request.
Often times, however, when pages are modified or new pages are added to an application, the access control logic is not updated simultaneously. This opens up an avenue for attackers to bypass the authentication mechanism and access such pages directly.
Another cause is multiple access routes to the same resource, not all of which are equally well protected.

Related Weaknesses
CWE-IDWeakness NameWeakness Relationship Type
425Direct Request ('Forced Browsing')Targeted
285Missing or Inconsistent Access ControlSecondary
Related Vulnerabilities
Vulnerability-IDVulnerability Description
CVE-2007-1156JBrowser allows remote attackers to bypass authentication and access certain administrative capabilities via a direct request for _admin/.
CVE-2007-1062The Cisco Unified IP Conference Station 7935 3.2(15) and earlier, and Station 7936 3.3(12) and earlier does not properly handle administrator HTTP sessions, which allows remote attackers to bypass authentication controls via a direct URL request to the administrative HTTP interface for a limited time
Related Security Principles
  • Complete Mediation
  • Reluctance To Trust
Related Guidelines
  • Treat the Entire Inherited Process Context as Unvalidated Input
  • Use Authentication Mechanisms, Where Appropriate, Correctly
Source
Submission(s)
SubmitterOrganizationDateComment
Chiradeep B. Chhaya2007-03-13First Draft
Modification(s)
ModifierOrganizationDateComment
Sean BarnumCigital, Inc2007-04-16Review and revise
Paco HopeCigital, Inc.2007-10-20Added extended Attack Execution Flow
 
Page Last Updated: April 18, 2008