DVWA之文件上传漏洞

这篇博客详细介绍了在DVWA中如何利用文件上传漏洞,包括LOW和Medium两个级别。在LOW级别,通过创建并上传PHP webshell,然后利用URL注入执行服务器命令。在Medium级别,由于系统仅接受JPEG或PNG,通过修改Content-Type字段,成功以PNG格式上传PHP脚本,实现绕过过滤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件上传漏洞是指用户上传可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。

上传漏洞原因在于代码作者没有对访客提交的数据进行校验或者过滤不严格,使上传的文件可以是木马、病毒、恶意脚本等等。

本次实验我使用的环境为DVWA、Burpsuite、java_x64_8.0.1520.16。

LOW级别

1.先编辑一个一句话简单的webshell脚本

新建记事本,输入以下代码

此段php语句表示用get方式获取cmd的参数

         编程完成保存后把文件后缀名改为.php使它成为一个php文件

2.打开DVWA的LOW级别下的File Upload窗口

DVWA靶场中,文件上传漏洞的利用是学习渗透测试的重要实践之一。该漏洞的核心在于应用程序未能正确验证用户上传的文件类型或内容,导致攻击者可以上传恶意文件(如WebShell)并执行任意代码。 ### 文件上传漏洞原理 文件上传功能通常用于允许用户将文件传输到服务器,例如头像上传、附件上传等。如果后端未对上传的文件进行严格的检查和过滤,攻击者可以通过构造特定的请求上传包含恶意代码的文件,并通过访问该文件来触发恶意行为[^2]。 ### 漏洞利用方法 1. **绕过前端验证** 前端验证通常使用JavaScript限制文件类型(如仅允许图片格式)。攻击者可以通过浏览器开发者工具禁用JavaScript或直接修改请求数据包来绕过这些限制。 2. **绕过后端验证** 后端可能通过检查文件扩展名、MIME类型或文件内容来阻止非授权文件上传。常见的绕过方式包括: - 使用双扩展名(如 `shell.php.jpg`),某些服务器配置会优先解析第一个扩展名。 - 修改MIME类型为图像类型(如 `image/jpeg`)以欺骗服务器。 - 在图片文件中嵌入PHP代码并使用文件包含漏洞调用它。 3. **上传WebShell** 构造一个简单的PHP WebShell文件,内容如下: ```php <?php if(isset($_REQUEST['cmd'])){ echo "<pre>"; $cmd = ($_REQUEST['cmd']); system($cmd); echo "</pre>"; } ?> ``` 将此文件保存为 `shell.php` 并尝试上传。成功上传后,可以通过访问该文件并传入命令参数(如 `?cmd=ipconfig`)来执行系统命令。 4. **提权与持久化控制** 一旦获得远程代码执行权限,可以进一步下载更高级的WebShell或尝试提权获取更高的系统权限。 ### 实践指南 - **设置DVWA环境** 确保已安装XAMPP或WAMP等本地服务器环境,并配置好DVWA平台。登录DVWA后,进入“File Upload”模块。 - **设置安全等级** DVWA提供了不同级别的安全设置(Low、Medium、High、Impossible)。建议从Low级别开始练习,逐步挑战更高难度。 - **使用Burp Suite抓包分析** 使用Burp Suite拦截上传请求,观察原始HTTP请求结构,尝试修改文件名、MIME类型等字段以绕过服务器检测。 - **日志文件注入** 如果无法直接上传PHP文件,可以尝试将PHP代码写入服务器日志文件(如访问日志),然后通过文件包含漏洞加载并执行它。 - **防御建议** 了解如何防御文件上传漏洞同样重要。最佳实践包括:限制上传目录权限、使用白名单机制验证文件类型、重命名上传文件、禁止脚本执行等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值