本地文件包含

high Web App Scanning 插件 ID 98125

简介

本地文件包含

描述

Web 应用程序偶尔会使用参数值来存储服务器稍后所需的文件位置。

此问题的一个示例常见于错误页面,其中错误页面的实际文件路径存储在参数值中,例如 `example.com/error.php?page=404.php`。

当参数值(即文件路径)可替换为同一服务器上其他资源的路径时,会发生文件包含,从而有效显示任意且可能受限制/敏感的文件。

扫描程序发现可以用其他资源替换参数值,并使服务器在响应中向客户端返回资源内容。

解决方案

建议切勿使用不受信任的数据形成要包含的文件位置。
为了验证数据,应用程序应确保允许为文件提供的值。这可通过将参数值与允许的文件列表匹配来执行白名单来实现。如果提供的值与白名单中的任何值均不匹配,则服务器应重定向到标准错误页面。
在某些请求动态内容的情况下,可能无法对受信任资源列表执行验证,因此该列表也必须变为动态(随文件变更而更新),或执行筛选以删除无关的用户输入(例如分号、句点等),且仅允许 `a-z0-9`。
还建议您不要将敏感文件存储在 Web 根目录中,而且目录强制执行的用户权限是正确的。

另见

https://www.owasp.org/index.php/PHP_File_Inclusion

插件详情

严重性: High

ID: 98125

类型: remote

发布时间: 2017/3/31

最近更新时间: 2025/4/17

扫描模板: api, full, pci, scan

风险信息

VPR

风险因素: High

分数: 7.2

CVSS v2

风险因素: High

基本分数: 9

矢量: CVSS2#AV:N/AC:L/Au:N/C:C/I:P/A:P

CVSS 分数来源: Tenable

CVSS v3

风险因素: High

基本分数: 8.6

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L

CVSS 分数来源: Tenable

CVSS v4

风险因素: High

Base Score: 8.8

Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N

CVSS 分数来源: Tenable

参考资料信息