前三个模块把注入类漏洞过了一遍,很多人到这一步会出现一种错觉:既然能通过 SQL 注入拿到数据、能靠命令注入执行系统指令,那剩下的环节大概只是重复劳动。实际上,文件上传和文件包含是另一条独立的攻击路径,它们的利用方式、绕过思路和前置知识都跟前三部分重合不多。如果你在做 CTF 的 Web 题时看到上传框就卡住,或者题目给了一个参数让你猜目录却不知道从哪下手,那这份材料的针对性就在这里。

这门课补的是哪块缺口

文件上传漏洞的核心不在"能不能传上去",而在"传上去之后服务端怎么处理"。真正要补的是对校验逻辑的理解:前端 JavaScript 校验、Content-Type 校验、文件头校验、后缀名黑名单与白名单,这几层防护各自挡什么、各自能被什么思路绕过。很多人在靶场里试了几次改后缀失败就放弃了,问题往往不是思路不够多,而是没搞清楚服务端到底在哪一层做了判断。

文件包含则是另一个方向的问题。它考验的是你对 PHP 包含函数的理解,以及路径穿越、伪协议、日志包含这几类利用手法的实际组合能力。这两类漏洞经常在同一道题里前后衔接——先通过上传落地一个可控文件,再通过包含把它执行起来。分开看每一块都不算难,串起来做才是这门课要练的东西。

看之前最好先确认这几件事

  • 能独立用 Burp Suite 抓包改包,至少知道 Repeater 怎么用、请求体在哪里改。
  • 对 HTTP 请求的结构有基本概念,能看懂 Content-Type、boundary 这些字段在做什么。
  • 本地或虚拟机里跑得起来一个 VulnHub 靶场,网络模式配置没出过问题。
  • PHP 基础语法不要求精通,但至少要能看懂 include、$_FILES、move_uploaded_file 这类代码在干什么。

如果上面有四条里有两三条对不上,建议先把前序模块的操作环境搭稳再进来,否则靶场里每一步都会变成"跟着敲但不知道为什么要这样敲"。

靶场部分应该怎么用

VulnHub 靶场的特点是环境完整、有明确的攻击链,不是单独给你一个漏洞点让你打。这意味着你需要自己完成信息收集、找到入口、判断漏洞类型、构造利用、拿到权限这一整套流程。文件上传和文件包含在这类靶场里往往不是终点,而是中间的一个跳板——通过上传 webshell 建立据点,再通过包含或者本地文件读取扩大战果。

建议的做法是:第一遍跟着操作走通流程,把每一步的执行结果记录下来;第二遍关掉参考,只保留靶场环境,看自己能不能独立复现整条链路。卡住的地方才是真正需要回头补的知识点,比通读一遍原理有效得多。

看完之后应该能回答的问题

  • 服务端只做了前端校验的情况下,用 Burp 改包能不能直接绕过?绕过之后文件落在哪个目录?
  • 黑名单过滤了 .php,还有哪些后缀在特定配置下会被解析执行?这取决于服务端哪个配置文件?
  • 文件包含里 php://filter 和 php://input 分别解决什么问题,各自的使用前提是什么?
  • 如果目标没有上传点,只有一处文件包含,能不能通过服务器日志或者 session 文件完成利用?路径怎么确定?
  • 在 VulnHub 靶场中,拿到 webshell 之后下一步通常要做什么才能提权或横向移动?

这五个问题能答上来三个以上,说明这个模块的内容基本吃透了。答不上来的,回到对应的章节重新操作一遍,比继续往后推进更有意义。

Web安全入门与靶场实战(四)

课程详情

课程标题

Web安全入门与靶场实战(四)

课程简介

本课程是针对网络安全感兴趣的学员,特别是CTF比赛、职业技能大赛等参赛队员设计的。课程内容围绕文件上传和文件包含漏洞展开,深入浅出地讲解相关安全知识。

适合人群

- 对网络安全感兴趣的学员 - CTF比赛、职业技能大赛等参赛队员

学习收获

- 掌握文件上传和文件包含漏洞的基本原理 - 熟悉VulnHub靶场实战操作 - 提升网络安全实战能力

课程亮点

- 精选VulnHub靶场,实战性强 - 理论与实践相结合,深入浅出 - 系列课程,逐步提升网络安全技能

课程目录

01 文件上传
  01 课程介绍.mp4
  02 WebShell免杀1.mp4
  03 WebShell免杀2.mp4
  04 文件上传代码分析1.mp4
  05 文件上传代码分析2.mp4
  06 DVWA文件上传代码分析.mp4
  07 绕过MIME类型检测.mp4
  08 定义白名单防范上传漏洞.mp4
  09 前端检测上传文件.mp4
  10 绕过前端检测.mp4
  11 设置黑名单限制上传.mp4
  12 修改扩展名绕过上传检测.mp4
  13 .htaccess配置文件的作用.mp4
  14 使用.htaccess的前提条件.mp4
  15 文件上传基础CTF例题.mp4
02 文件包含
  01 什么是文件包含.mp4
  02 通过文件包含读取文件.mp4
  03 通过文件包含执行代码.mp4
  04 提取文件头部数据检测文件类型.mp4
  05 二进制文件与文本文件.mp4
  06 如何插入图片头.mp4
  07 如何在图片中插入代码.mp4
  08 exif_imagetype绕过.mp4
  09 修改PHP代码标记.mp4
  10 文件包含配合文件上传.mp4
  11 通过php伪协议读取源码.mp4
  12 CTF例题分析:Bugku-文件包含.mp4
  13 CTF例题分析:BUUCTF-SecretFile.mp4
  14 CTF例题分析-BUUCTF-fileinclude.mp4
03 靶机INCLUSIVENESS
  01 FTP匿名上传.mp4
  02 文件包含获取Shell.mp4
  03 发现提权线索.mp4
  04 PATH环境变量.mp4
  05 修改环境变量提权.mp4
04 靶机PWNLAB
  01 文件包含获取网页源码.mp4
  02 上传页面代码分析.mp4
  03 获取靶机Shell.mp4
  04 提权思路分析.mp4
  05 RCE提权.mp4
05 靶机BILLU
  01 靶机信息收集.mp4
  02 获取网页源码.mp4
  03 SQL注入代码审计.mp4
  04 获取数据库中的数据.mp4
  05 文件上传代码审计.mp4
  06 文件包含代码审计.mp4
  07 课程结语.mp4