LFI

LFI

Category: Broken Access Control

Severity: High

Description

Local file inclusion (also known as LFI) is the process of including files that are already locally present on the server, through the exploitation of vulnerable inclusion procedures implemented in the application. This vulnerability occurs, for example, when a page receives, as input, the path to the file that has to be included, and this input is not properly sanitized, allowing directory traversal characters (such as dot-dot-slash) to be injected. Although most examples point to vulnerable PHP scripts, we should keep in mind that it is also common in other technologies such as JSP, ASP, and others.

Impact

  • Code execution on the web server

  • Code execution on the client-side (such as JavaScript which can lead to other attacks, such as Cross-Site Scripting (XSS)

  • Denial of Service (DoS)

  • Sensitive Information Disclosure

Remediation

The most effective solution to eliminate file inclusion vulnerabilities is to avoid passing user-submitted input to any filesystem/framework API. If this is not possible the application can maintain a white list of files, that may be included by the page, and then use an identifier (for example the index number) to access to the selected file. Any request containing an invalid identifier has to be rejected, in this way there is no attack surface for malicious users to manipulate the path.

https://portswigger.net/web-security/file-path-traversal

Last updated