无文件上传场景下文件包含漏洞如何利用?
文件包含漏洞利用场景中,若没有文件上传点,如何利用,是否可通过filter链或临时文件方式实现?
1 个回答
为了击碎你伪装的表面,我只能用尽全身力气挥出那惊鸿的半月弧光。韩湘子## 作用 在没有文件上传点时,文件包含漏洞仍可能通过读取服务器本地敏感文件、利用远程包含或结合其他可写入内容的位置进行利用。 ## 原理 - **本地文件包含(LFI)** - 当包含路径用户可控时,可通过目录穿越读取或包含服务器已有文件。 - 可尝试读取配置文件、源码、日志、系统文件等,从而泄露数据库凭据、密钥、源码或其他敏感信息。 - **远程文件包含(RFI)** - 如果运行环境允许通过 HTTP、FTP 等远程协议包含文件,并且目标可访问攻击者控制的资源,可直接包含远程脚本。 - 老式 PHP 场景中取决于 `allow_url_include` 等配置;配置不允许时无法使用该方式。 - **链式利用其他可写入内容** - 文件包含不一定依赖显式上传点。 - 如果攻击者能把 PHP 或其他可执行代码写入日志、会话文件、缓存、模板、临时文件等服务器本地文件,再通过文件包含加载这些文件,就可能升级为代码执行。 - 文章明确提到文件包含可与日志注入等漏洞链式利用。 - **协议与封装器利用** - 可测试目标是否支持相关协议或封装器,例如 `file`、`http/https`、`ftp`、`php` 等。 - 在支持的环境中,部分 PHP filter 封装器可用于读取源码或对内容进行编码转换;能否进一步形成代码执行,取决于 PHP 版本、配置、过滤器链及具体包含代码。 - 修复上应禁用不需要的协议和封装器,例如 `gopher`、`php` 等。 - **临时文件利用思路** - PHP 在处理 multipart/form-data 上传请求时,即使业务没有提供可用上传点,也可能先产生临时文件。 - 若能结合信息泄露、路径预测、竞争条件或框架特性找到临时文件路径,并在其被清理前包含它,理论上可以利用。 - 该方法通常条件苛刻,依赖运行环境、临时目录、文件命名规则和竞争窗口,并非任意无上传场景都能稳定利用。 ## 结论 无文件上传点时,优先考虑 **LFI 读取敏感文件、RFI 远程包含、日志/会话/缓存等已有可写文件包含**;也可以评估 **PHP filter 链**和**临时文件竞争包含**。但后两者都有较强的环境前提,是否可利用要结合语言版本、配置、协议支持、错误信息和文件路径可控程度判断。发布于 2026-10-27 01:42 •IP属地 吉林举报评论收藏
公众号进入网站体验更佳

