Upload-Labs 第1至第10关通关教程(更新中。。。)
Upload-Labs 第1至第10关通关教程引言Upload-Labs 是一个专注于文件上传漏洞练习的开源靶场旨在帮助网络安全初学者深入理解各类文件上传漏洞的成因、利用方式及防御措施。该靶场通过设置不同难度和类型的关卡模拟了真实Web应用中常见的安全缺陷涵盖了从前端校验到服务端解析的多种攻击场景。本教程将详细讲解 Pass-01 至 Pass-10 的通关方法每关均包含漏洞原理分析、具体操作流程以及实操截图说明。建议读者在本地搭建 PHPStudy 环境Apache PHP 5.x进行实验以确保与靶场运行环境一致避免因版本差异导致无法复现问题。Pass-01 前端验证绕过本关考察前端JavaScript对文件类型进行限制的安全机制及其绕过方法。漏洞原理说明此关卡仅在客户端使用 JavaScript 函数checkFile()对上传文件的扩展名进行检查阻止.php等可执行脚本的上传。然而这种校验完全依赖于浏览器端攻击者可通过禁用或修改JS代码轻松绕过而服务器并未对文件类型做任何后端验证存在严重的安全风险。具体操作流程尝试上传一个名为shell.php的一句话木马文件浏览器会弹出提示“只允许上传 .jpg/.png/.gif 类型文件”并阻止提交。打开浏览器开发者工具F12切换至“Elements”或“Sources”面板找到页面中的script标签定位到checkFile()函数。删除或注释掉该函数的核心判断逻辑例如将return false;改为return true;或者直接删除整个函数定义。在修改后的页面中重新选择shell.php文件并上传此时可成功绕过前端限制。上传成功后复制返回的文件路径在蚁剑AntSword中新建连接填入URL地址和密码如kfc即可连接获取 WebShell。防御建议应始终在服务端对上传文件的类型、内容和扩展名进行严格校验不能依赖前端JS作为唯一防线。同时建议对上传文件重命名并存储在无执行权限的目录下。Pass-02 MIME 类型校验绕过本关考察服务器仅通过 HTTP 请求头中的Content-Type字段判断文件类型的安全缺陷。漏洞原理说明虽然前端未做限制但服务端通过 PHP 的$_FILES[upload_file][type]获取文件的 MIME 类型并仅允许image/jpeg、image/png等图片类型。由于该值由客户端控制攻击者可使用抓包工具如 Burp Suite篡改请求中的Content-Type头部从而伪造文件类型实现绕过。具体操作流程准备一个包含一句话木马的 PHP 文件例如shell2.php内容如下?phpeval($_POST[shell2]);?在网页中选择该文件并点击上传使用 Burp Suite 抓取 POST 请求包。在拦截的请求中找到Content-Type: application/octet-stream或类似字段将其修改为image/png。放行数据包服务器将误认为上传的是合法图片文件从而允许保存。访问上传成功的文件路径使用蚁剑连接成功获取 WebShell 控制权。防御建议不应依赖Content-Type判断文件类型因其极易被伪造。应结合文件头Magic Number、扩展名白名单和服务端内容检测等多种手段综合判断。Pass-03 黑名单不全绕过本关考察基于黑名单过滤机制中存在的遗漏扩展名所带来的安全隐患。漏洞原理说明服务端采用黑名单方式禁止.php、.php3、.php4、.php5等常见PHP扩展名上传。但由于配置不当或考虑不周某些服务器仍支持其他可解析的扩展名如.phtml、.php7、.inc。若未将这些扩展纳入黑名单则可被用于绕过。此外Apache 需要在httpd.conf中显式配置AddType application/x-httpd-php才能识别非标准扩展因此需手动添加支持。具体操作流程编辑 Apache 的配置文件httpd.conf查找是否存在以下语句#AddType application/x-httpd-php .php .phtml取消注释并在末尾添加.php5修改为AddType application/x-httpd-php .php .phtml .php5保存文件并重启 PHPStudy 服务使配置生效。将原始的shell.php文件重命名为shell.php5。上传该文件服务器将根据新配置将其作为PHP脚本解析执行。使用蚁剑连接shell.php5成功获得 WebShell。防御建议应优先使用白名单而非黑名单策略。即使使用黑名单也必须覆盖所有可能被解析的扩展名并定期更新规则库。同时建议关闭不必要的文件解析功能。Pass-04 .htaccess 文件利用本关考察通过上传.htaccess文件来改变 Apache 解析行为的高级绕过技术。漏洞原理说明.htaccess是 Apache 提供的一种分布式配置文件可用于控制目录级的行为包括文件解析方式。当目标服务器允许上传.htaccess文件且开启了AllowOverride All时攻击者可上传自定义规则强制将特定扩展名甚至任意文件解析为 PHP 脚本。具体操作流程创建一个名为.htaccess的文本文件内容如下SetHandler application/x-httpd-php此指令表示该目录下所有文件都将被视为 PHP 文件处理。将该文件上传至服务器。如果提示不允许上传.htaccess可尝试大小写变换如.HtAccess或编码绕过。准备一张图片马在正常 GIF 图片头部插入一句话木马并确保前六个字节为GIF89a以便通过类型检测。将该图片另存为shell.jpg并上传。访问shell.jpg的URL由于.htaccess规则作用服务器会将其当作 PHP 脚本执行触发木马代码。使用蚁剑连接该 URL成功建立会话。防御建议应在 Web 目录中禁用.htaccess文件的解析功能或在 Apache 主配置中设置AllowOverride None。同时禁止上传点所在目录具有脚本执行权限。Pass-05 .user.ini 文件利用本关考察利用 PHP 的用户配置文件.user.ini实现持久化代码执行的技术。漏洞原理说明从 PHP 5.3.0 开始CGI/FastCGI 模式下支持每个目录下的.user.ini文件自动加载。该文件可用于设置auto_prepend_file或auto_append_file使得每次请求 PHP 文件时都会自动包含指定文件。若攻击者能上传.user.ini和恶意图片马则可在后续访问中触发包含实现命令执行。前提条件PHP 版本 ≥ 5.3.0运行模式为 CGI/FastCGI上传目录可写且能访问具体操作流程创建.user.ini文件内容如下auto_prepend_fileshell.jpg表示每个 PHP 页面执行前都会包含shell.jpg。上传该.user.ini文件。准备一个图片马shell.jpg其内容开头为GIF89a并嵌入一句话木马。上传shell.jpg。等待缓存刷新默认user_ini.cache_ttl300秒或修改 php.ini 将其设为较小值如10秒并重启服务。访问任意已存在的 PHP 页面如readme.php服务器将自动包含shell.jpg触发木马。使用蚁剑连接该页面成功获取 WebShell。防御建议应禁止上传.ini类型文件或在 PHP 配置中设置user_ini.filename来禁用.user.ini功能。同时避免在用户可控目录中启用 FastCGI 模式。Pass-06 大小写绕过本关考察黑名单过滤过程中未统一转换文件名大小写所导致的绕过漏洞。漏洞原理说明服务端黑名单虽列出了.php、.php3等扩展名但在比对时未使用strtolower()统一转为小写导致如.Php、.pHp、.PHP等混合大小写的扩展名未被识别从而绕过检测。而 Windows 系统本身不区分文件扩展名大小写仍可正常解析执行。具体操作流程将原始的一句话木马文件shell.php重命名为shell.Php。直接在网页上传该文件。服务器因黑名单匹配失败而放行文件被保存为shell.Php。由于 Apache/PHP 对扩展名不敏感该文件仍会被当作 PHP 脚本解析。使用蚁剑连接shell.Php成功建立控制通道。防御建议在进行黑名单或白名单校验前应对文件扩展名统一转换为小写使用strtolower()确保比较一致性。更推荐使用白名单机制配合严格的格式校验。Pass-07 空格绕过本关考察未使用trim()清除文件名首尾空白字符所引发的安全问题。漏洞原理说明服务端黑名单检查时未调用trim()函数去除文件名两端的空格或其他空白字符如%20、\x09等。攻击者可在.php后添加空格如shell.php使黑名单匹配失效。而在实际保存时操作系统或PHP函数可能会自动忽略末尾空格最终生成合法的.php文件。具体操作流程准备shell.php文件。使用 Burp Suite 抓包在上传请求中将文件名字段改为shell.php注意末尾有一个空格。查看请求体中filenameshell.php 是否正确显示。放行数据包服务器因黑名单未命中而允许上传。文件系统通常会忽略末尾空格实际保存为shell.php。使用蚁剑连接原文件名shell.php无需带空格成功连接。注意蚁剑连接时填写的路径是shell.php而不是带有空格的名称。防御建议应对上传文件名调用trim()函数清除前后空白字符并在正则匹配或字符串比较前进行规范化处理。Pass-08 文件名末尾加点绕过本关考察 Windows 文件系统自动去除文件名末尾“.”所导致的绕过漏洞。漏洞原理说明Windows 文件系统不允许文件名以“.”结尾在保存时会自动移除末尾的点号。而服务端黑名单若仅简单地检查扩展名是否为.php未对文件名进行标准化处理则攻击者可通过上传shell.php.成功绕过检测最终被系统保存为shell.php。具体操作流程将shell.php重命名为shell.php.。使用 Burp Suite 抓包确认请求中文件名为shell.php.。放行数据包服务器接收该文件。操作系统在保存时自动去除末尾的“.”实际文件名为shell.php。该文件可被正常解析执行。使用蚁剑连接shell.php成功获取 WebShell。提示此技巧仅适用于部署在 Windows 系统上的服务器。防御建议应在服务端对文件名进行预处理移除末尾的点号和空格并拒绝包含非常规字符的文件名。同时建议使用随机文件名存储上传文件。Pass-09 ::$DATA 绕过本关考察 NTFS 文件流特性在文件上传绕过中的应用。漏洞原理说明NTFS 文件系统支持“替代数据流”ADS其中::$DATA表示主数据流。当文件名形如shell.php::$DATA时Windows 会将其视为主流文件shell.php但在黑名单检测阶段由于扩展名部分变为::$DATA常规.php检查将失效从而实现绕过。具体操作流程构造文件名为shell.php::$DATA。使用 Burp Suite 抓包在请求中将文件名字段修改为此值。放行数据包服务器因无法识别::$DATA而放行上传。文件系统将其解释为shell.php并保存。使用蚁剑连接时路径应填写shell.php不要包含::$DATA。易错点连接时务必删除::$DATA后缀否则无法访问。防御建议应禁用 NTFS 替代数据流功能或在上传前对文件名进行清洗移除特殊符号。也可在 Linux 环境下部署服务以规避此类问题。Pass-10 特殊字符组合绕过本关考察对文件名处理函数deldot()逻辑缺陷的理解与利用。漏洞原理说明服务端使用自定义函数deldot()处理文件名其逻辑是从后往前扫描遇到第一个“.”即停止处理不会继续检查之前的字符。攻击者可构造shell.php. .点空格点的形式使得函数在遇到最后一个“.”时停止未能检测到前面的.php.结构从而绕过黑名单。具体操作流程将shell.php重命名为shell.php. .注意中间有空格。使用 Burp Suite 抓包确认文件名字段为shell.php. .。放行数据包服务器因deldot()函数逻辑缺陷而放行。文件系统忽略末尾的“.”和空格最终保存为shell.php。使用蚁剑连接shell.php成功建立连接。关键点deldot()函数设计不合理未完整清理文件名结构。防御建议应彻底重构文件名处理逻辑使用正则表达式或循环方式完整清理所有无效字符。更安全的做法是使用哈希值如 md5加时间戳重命名上传文件。

相关新闻

工具Cursor(六)RulesSkillCommandssubAgents对比

工具Cursor(六)RulesSkillCommandssubAgents对比

在 Cursor 里,Rules、Skills、Commands、Sub Agents 都是为了增强 AI 编码能力而设计的,但它们的定位完全不同。很多人会混淆,其实可以从 控制粒度和作用范围 来理解。一、整体关系Cursor AI 的扩展能力大致是这样的:User↓ Main …

2026/7/7 12:04:46 阅读更多 →
深度学习入门(七)CNN卷积神经网络

深度学习入门(七)CNN卷积神经网络

图像基本概念图像是由像素点组成的,每个像素点的取值范围为: [0, 255] 。像素值越接近于0,颜色越暗,接近于黑色;像素值越接 近于255,颜色越亮,接近于白色。在深度学习中,我们使用的图像大多是彩…

2026/7/7 12:04:58 阅读更多 →
12、【AI】【Agent】联网使用大模型(role 角色)

12、【AI】【Agent】联网使用大模型(role 角色)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除 背景 上篇 blog 【AI】【Agent】联网使用大模…

2026/7/4 16:29:23 阅读更多 →

最新新闻

上行与下行带宽区别

上行与下行带宽区别

很多朋友在测速时,都会看到两个数字:下载速度和上传速度。有时候,下载速度可以达到900Mbps,而上传速度却只有100Mbps左右;还有些企业申请专线时,运营商会特别说明“上下行对等带宽”。不少人虽然每天都在用…

2026/7/7 12:07:17 阅读更多 →
高压隔离技术:ISOM8710与STM32L4A6RG的安全设计实践

高压隔离技术:ISOM8710与STM32L4A6RG的安全设计实践

1. 高压安全隔离技术概述在工业自动化、医疗设备和电力电子等领域,高压电路与低压控制系统的安全隔离是确保人员和设备安全的关键需求。ISOM8710作为一款高性能数字隔离器,配合STM32L4A6RG低功耗微控制器,能够构建可靠的高压隔离解决方案。典…

2026/7/7 12:07:17 阅读更多 →
听歌不想只发截图?用MusicCard把喜欢的歌做成专属音乐海报

听歌不想只发截图?用MusicCard把喜欢的歌做成专属音乐海报

文章目录1.在极空间一键部署Music Card1.1ssh远程连接到极空间1.2安装docker1.3安装Music Card2.安装cpolar实现随时随地开发3.配置公网地址4.保留固定公网地址总结有些歌适合单曲循环,也适合被认真分享。只是很多时候,我们想表达的不只是“我在听这首歌…

2026/7/7 12:03:16 阅读更多 →
网盘直链下载助手完整指南:告别限速,一键获取真实下载链接

网盘直链下载助手完整指南:告别限速,一键获取真实下载链接

网盘直链下载助手完整指南:告别限速,一键获取真实下载链接 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国…

2026/7/7 11:57:12 阅读更多 →
如何免费解锁WeMod专业版:3个关键步骤与安全指南

如何免费解锁WeMod专业版:3个关键步骤与安全指南

如何免费解锁WeMod专业版:3个关键步骤与安全指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod专业版的高昂订阅费而烦恼吗&am…

2026/7/7 11:55:12 阅读更多 →
腾讯混元 Hy3 开源:多任务比肩大尺寸模型,多项指标显著优化

腾讯混元 Hy3 开源:多任务比肩大尺寸模型,多项指标显著优化

【导语:继 4 月底发布 Hy3 preview 后,腾讯混元 Hy3 现已开源,在推理、智能体、长上下文等任务上显著进步,多项指标优化明显,成为高性价比可靠选择。】混元 Hy3 开源:多维度升级亮点足 腾讯混元 Hy3 在发布…

2026/7/7 11:53:12 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻