DVWA-文件上传学习笔记

一、文件上传漏洞

文件上传漏洞,通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,导致攻击者恶意上传木马以便获得服务器的webshell权限。

二、DVWA学习

将DVWA的级别设置为low

1.分析源码,把网站根目录和上传的到的目录以及文件名进行拼接,然后判断文件是否上传到新的位置,可以看出没有对文件上传做任何过滤

  

2.编写php一句话木马,然后上传,下图说明上传成功

  

3.用中国菜刀连接上传的webshell

  

将DVWA的级别设置为Medium

1.分析源码,可以看到对上传的文件类型和大小做了限制,  采用白名单过滤只允许上传文件的MIME类型为image/jpeg或者image/png,以及文件大小小于100000字节

  

2.抓包修改文件的MIME类型,绕过MIME类型的限制

  

3.使用菜刀连接

  

将DVWA的级别设置为High

1.分析源码,可以看到对上传文件的后缀进行了严格的限制,只允许后缀为jpg、jpeg、png并且大小小于100000字节的文件。   此时只能上传文件后缀为jpg、jpeg、png的文件

  

2.通过构造一句话图片木马,然后上传来绕过防御,然后结合php文件解析漏洞或者web中间件解析漏洞或者文件包含漏洞来达到解析含有php代码的png文件

2.1构造图片马   #本实验由于DVWA版本自身原因,无法利用文件包含结合文件上传

方法一:找个图片,用记事本打开,添加一句话

方法二:copy 1.jpg/b+a.php/a 2.jpg

  

将DVWA的级别设置为Impossible

1.分析源码,可以看出对上传文件的后缀,上传文件的类型,上传文件的大小做了严格的限制,并对上传的文件进行重命名,彻底杜绝文件上传漏洞

Impossible级别的代码对上传文件进行了重命名

  

DVWA-文件上传学习笔记的更多相关文章

  1. PHP文件上传学习

    PHP文件上传学习 <?php // 判断是否有文件上传 if (!isset($_FILES['upfile'])) { die('No uploaded file.'); } // 判断是否 ...

  2. FormData+Ajax 实现多文件上传 学习使用FormData对象

    FormData对象是为序列化表以及创建与表单格式相同的数据(当然是用于XHR传输)提供便利. 今天我们使用dropzone和FormData实现多文件上传功能. var SAMP = null; / ...

  3. Springboot文件上传代码笔记

    1.在src下创建filter包,包内Class名UploadFilter package com.gd.filter; import org.apache.catalina.servlet4prev ...

  4. linux文件上传下载笔记(rz,sz,sftp,scp)命令

    软件(包)安装/卸载 yum -y install 包名(支持*) :自动选择y,全自动yum install 包名(支持*) :手动选择y or nyum remove 包名(不支持*)rpm -i ...

  5. DVWA漏洞演练平台 - 文件上传

    DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助w ...

  6. springmvc学习笔记--支持文件上传和阿里云OSS API简介

    前言: Web开发中图片上传的功能很常见, 本篇博客来讲述下springmvc如何实现图片上传的功能. 主要讲述依赖包引入, 配置项, 本地存储和云存储方案(阿里云的OSS服务). 铺垫: 文件上传是 ...

  7. [原创]java WEB学习笔记49:文件上传基础,基于表单的文件上传,使用fileuoload 组件

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. SpringMVC:学习笔记(8)——文件上传

    SpringMVC--文件上传 说明: 文件上传的途径 文件上传主要有两种方式: 1.使用Apache Commons FileUpload元件. 2.利用Servlet3.0及其更高版本的内置支持. ...

  9. Spring学习笔记2——表单数据验证、文件上传

    在上一章节Spring学习笔记1——IOC: 尽量使用注解以及java代码中,已经搭建了项目的整体框架,介绍了IOC以及mybatis.第二节主要介绍SpringMVC中的表单数据验证以及文件上传. ...

随机推荐

  1. 项目中出现多个域名下的Cookie

    前言:我们在查看一个项目的Cookie时,有时会看到多个域名下的Cookie,如下图: 其中一种常见的原因是:因为我们在项目中引用了另一个项目的资源.如下图: 重点:浏览器的一种默认机制:如果我们引用 ...

  2. hibernate关联关系(一对多)

    什么是关联(association) 关联指的是类之间的引用关系.如果类A与类B关联,那么被引用的类B将被定义为类A的属性. 案例:如何建立客户和订单一对多双向关联 先不建立客户和订单的关联关系,定义 ...

  3. pycharm2019.2一个奇怪的bugger,执行后输出内容被莫名处理

    2019-08-20 07:45:07 python爬虫是一直来大家都用的多的,我也是常常用到. requests做请求方便的很,但是今天却遇到requests的bug.text内容不可信. pych ...

  4. DQL---连接查询(内连接、外连接)、子查询、分页查询

    一.连接查询 1.连接查询建立在有相互关系的两个表间,进行两个及两个以上的表或视图的查询. 2.对n张表进行查询,至少需要n-1个连接表的条件. 二.笛卡尔积(容易造成数据库宕机) 1.指表中每行元素 ...

  5. cnblogs停止更新,同步到个人博客!

    cnblogs停止更新,同步到个人博客 https://dengpeng.me/!             个人博客地址: https://dengpeng.me

  6. 裸奔的支付X聊天,你还敢用吗?

    - 语音消息 使用HTTP明文传输,没有任何加密措施,使用域名为up-mayi.django.t.taobao.com,从报文中可以看出,语音消息是以文件形式在网络中传输的,下图为一次语音的发送传输过 ...

  7. Android SDK自带调试优化工具

    Android sdk中自带了一些分析内存,界面调优的非常实用的工具,这对于分析和调试我们的应用十分有帮助,由于我使用的是linux版本的sdk,所以就以linux版本的工具做一个介绍,这些工具的具体 ...

  8. mysql使用命令

    1.创建用户 create user 'name'@'host' identified by 'psssword'; 2.授权 grant select, updata,insert (all) on ...

  9. axios+vue实现动态渲染员工数据+数据是对象

    <style> table{ width: 600px; margin: 0 auto; text-align: center; border-collapse: collapse; /* ...

  10. 第一周-调用weka算法进行数据挖掘

    第一周-调用weka算法进行数据挖掘 简单数据集data.txt @relation weather @attribute outlook {sunny, overcast, rainy} @attr ...