文件上传漏洞

实验准备

安装JDK环境

DVWA-文件上传漏洞 教程DVWA-文件上传漏洞 教程
DVWA-文件上传漏洞 教程
DVWA-文件上传漏洞 教程
DVWA-文件上传漏洞 教程

在系统变量下新建变量JAVA_HOME 变量值指向JDK安装的文件夹。
DVWA-文件上传漏洞 教程

在系统变量下新建变量CLASSPATH 变量值输入:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar

DVWA-文件上传漏洞 教程

选中Path 点击编辑,Windows 7系统, 则直接在末尾添加
DVWA-文件上传漏洞 教程DVWA-文件上传漏洞 教程

测试安装成功
DVWA-文件上传漏洞 教程

Low等级

查看源码

DVWA-文件上传漏洞 教程

basename(path,suffix)
函数返回路径中的文件名部分,如果可选参数suffix为空,则返回的文件名包含后缀名,反之不包含后缀名。
可以看到,服务器对上传文件的类型、内容没有做任何的检查、过滤,存在明显的文件上传漏洞,生成上传路径后,服务器会检查是否上传成功并返回相应提示信息。
如果上传成功,则会提示 路径+succesfully uploaded! 如果上传失败,则会提示 Your image was not uploaded。

上传冰蝎(belinder)的webshell, server文件夹中的文件:shell.php

DVWA-文件上传漏洞 教程DVWA-文件上传漏洞 教程

启动冰蝎,连接木马webshell

DVWA-文件上传漏洞 教程DVWA-文件上传漏洞 教程

配置冰蝎,“新增”

DVWA-文件上传漏洞 教程DVWA-文件上传漏洞 教程

双击刚才新增的记录,连接webshell,链接成功后的界面DVWA-文件上传漏洞 教程

可进行各种攻击

DVWA-文件上传漏洞 教程

Medium等级

查看源码

DVWA-文件上传漏洞 教程

可以看到,服务器对上传文件的大小和类型做了限制。只允许上传小于 100000 字节并且文件type类型是image/jpeg或 image/png 的。

方法一:抓包修改文件的type

在phpstudy的服务器中,将原来上传的shell.php,删除
DVWA-文件上传漏洞 教程

在kali中上传冰蝎(belinder)的webshell,这里显示文件类型错误提示

DVWA-文件上传漏洞 教程DVWA-文件上传漏洞 教程
DVWA-文件上传漏洞 教程

配置kali中的火狐代理,通过burpsuite抓包(具体过程略),默认type类型是application/octer-stream
DVWA-文件上传漏洞 教程

将其类型改为 image/jpeg ,然后send上传,可以看到,已经上传成功
DVWA-文件上传漏洞 教程

在物理机,利用冰蝎访问shell.php
DVWA-文件上传漏洞 教程

方法二:00截断

00截断方法一
在phpstudy的服务器中,将原来上传的shell.php,删除
DVWA-文件上传漏洞 教程

在kali中上传冰蝎(belinder)中将shell.php, 复制,并改名为shell.php.jpg
DVWA-文件上传漏洞 教程

在kali中上传冰蝎(belinder)的webshell, server文件夹中的文件:shell.php.jpg,这里显示文件上传成功

DVWA-文件上传漏洞 教程DVWA-文件上传漏洞 教程

配置kali中的火狐代理,通过burpsuite截获该数据包,并转发到repeater
DVWA-文件上传漏洞 教程

查看16进制文件名shell.php.jpg,通过将”.”,改为00,将文件名改为:shell.php jpg , 语法运行结果为: shell.php,并上传到web网站
DVWA-文件上传漏洞 教程

将2e改为 00
DVWA-文件上传漏洞 教程

然后再查看,可以看到文件名已经变了
DVWA-文件上传漏洞 教程

点击“send”提交数据包,response显示文件提交成功
DVWA-文件上传漏洞 教程

可以到物理机的phpstudy服务器查看webshell,已经提交成功
DVWA-文件上传漏洞 教程

在物理机,利用冰蝎访问shell.php
DVWA-文件上传漏洞 教程

00截断方法二:将文件名改为 1.php%00.jpg

将原来上传的shell.php,删除
DVWA-文件上传漏洞 教程

将shell.php,复制,并命名为“shell.php%00.jpg
DVWA-文件上传漏洞 教程

上传该文件,显示成功上传
DVWA-文件上传漏洞 教程DVWA-文件上传漏洞 教程

配置kali中的火狐代理,通过burpsuite截获该数据包,并转发到repeater
DVWA-文件上传漏洞 教程

然后选中 %00 ,然后进行URL-decode。可以看到,文件名已经变了
DVWA-文件上传漏洞 教程

点击 send ,可以看到已经上传成功了
DVWA-文件上传漏洞 教程

可以到物理机的phpstudy服务器查看webshell,已经提交成功
DVWA-文件上传漏洞 教程

在物理机,利用冰蝎访问shell.php
DVWA-文件上传漏洞 教程

相关文章:

  • 2022-12-23
  • 2022-02-07
  • 2021-06-28
  • 2021-12-09
猜你喜欢
  • 2021-10-02
  • 2021-12-09
  • 2021-11-27
  • 2021-09-06
  • 2022-12-23
  • 2021-05-31
  • 2021-10-02
相关资源
相似解决方案