文件上传绕过各种姿势

漏洞简介

文件上传,顾名思义就是上传文件的功能行为,之所以会被发展为危害严重的漏洞,是程序没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。文件上传漏洞是漏洞中最为简单猖獗的利用形式,一般只要能上传获取地址,可执行文件被解析就可以获取系统WebShell。

漏洞原理

​ 网站WEB应用都有一些文件上传功能,比如文档、图片、头像、视频上传,当上传功能的实现代码没有严格校验上传文件的后缀和文件类型时,就可以上传任意文件甚至是可执行文件后门。

漏洞危害

恶意文件传递给解释器去执行,之后就可以在服务器上执行恶意代码,进行数据库执行、服务器文件管理,服务器命令执行等恶意操作。根据网站使用及可解析的程序脚本不同,可以上传的恶意脚本可以是PHP、ASP、JSP、ASPX文件。

文件上传的绕过脑图

在这里插入图片描述

如何判断上传漏洞类型?

在这里插入图片描述

文件上传绕过姿势

0x01、本地JS绕过

  • 首先我们将上传文件后缀由php➡jpg
  • 通过Burp抓包将jpg➡php

在这里插入图片描述

0x02、MIME验证绕过(Content-Type)

  • 首先我们上传webshell时提示,文件类型不正确

  • 在这里插入图片描述

  • 将Content-Tepy 由application/octet-stream
    改为 image/png 成功绕过

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

  • 上传成功

在这里插入图片描述

Content-Tepy类型扩展
在这里插入图片描述

0x03、黑名单绕过

  • 尝试上传webshell
  • 在这里插入图片描述

可以通过提示或源码可以看出,上传点对后缀做了黑名单限制
在这里插入图片描述
因为是php,我们尝试使用php5等绕过黑名单验证
在这里插入图片描述
后缀绕过拓展
在这里插入图片描述

0x04、大小写绕过

大小写过滤原理:windows对大小写不敏感,linux对大小写敏感
将文件后缀名改成大写,成功上传。
在这里插入图片描述

0x05、空格绕过

原理:windows等系统下,文件后缀加空格命名之后是默认自动删除空格。查看网站源代码发现过滤了大小写,没用过滤空格。

在php后缀添加空格 成功绕过
在这里插入图片描述

0x06、点绕过

原理:同空格绕过原理一样,主要原因是windows等系统默认删除文件后缀的.和空格,查看网站源码发现,没有过滤点
在文件后缀添加个”.“成功绕过
在这里插入图片描述

0x07、双写绕过

原理:查看源码发现,没有过滤点,空格,大写等,估计这种不是放在windows下的,这里可以用点大写空格:$DATA等绕过,不过这里的目的不是这个,是让学习双写绕过,看源码发现str_ireplace这个函数将php,php5,php4等后缀变成空格,且只执行了一次,所以可以尝试构造文件后缀为pphphp绕过。
绕过姿势:上传文件后缀为pphphp的文件,发现上传成功,
在这里插入图片描述

0x08、%00截断

原理:查看源码发现使用了白名单,只允许jpg,png,gif文件的上传,所以前面使用的方法都不适用,然后我们发现路径img_path函数是让文件位置(save_path)加时间随机数(rand)的方法生成文件位置和文件名称,所以这里我们可以尝试在save_path的地方使用%00的方法截断后面的语句,burpsuite抓包发现,是可以更改save_path的,不过此方法有使用的限制。

使用限制:
1、php版本小于5.3.4
2、php.ini的magic_quotes_gpc为OFF状态

(magic_quotes_gpc)函数的的底层实现是类似c语言,所以可以%00截断
在这里插入图片描述
move_uploaded_file遇到\x00字符后会截断路径名,在实现上存在安全漏洞
绕过姿势:

(get传输):上传php文件,burpsuite抓包,修改save_path如图所示,发现上传成功
在这里插入图片描述
YJ连接成功
在这里插入图片描述

0x09、图片木马

查看源码:采用白名单限制上传的只能是图片,故考虑图片木马
在这里插入图片描述
那我们要制作张php图片马
copy 1.png/b + 2.php/a 3.jpg 上传
在这里插入图片描述
上传成功,需要配合文件包含利用
在这里插入图片描述

0x10、竞争条件

查看源码:发现上传的文件先被存储在服务器,然后进行判断,如果不是jpg png gif 则unlik()删掉,是的话重命名

在这里插入图片描述
绕过姿势:在判断删除前,进行访问,竞争时间
shell.php 如下,当然也可写其他木马或者生成木马的php文件,上传用burpsuite抓包,当然可以写脚本在这里插入图片描述
在这里插入图片描述
绕后构造访问连接:http://127.0.0.1/upload-labs-master/upload/shell.php 用burpsuite抓包发送和上传一起开始 如何不行可以尝试线程调大点,或者写脚本
在这里插入图片描述

  • 17
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
文件上传漏洞是指攻击者通过上传恶意文件的方式,绕过应用程序的安全机制,将恶意文件上传到服务器上,从而实现攻击目的。常见的文件上传漏洞绕过方式包括以下几种: 1. 修改文件类型:攻击者可以修改上传文件的文件类型,将恶意文件伪装成常见文件类型,绕过检测机制。 2. 绕过文件类型检测:上传文件时,应用程序会检测文件类型,如果上传的文件类型不符合要求,则会拒绝上传。攻击者可以通过修改 HTTP 头部信息或者使用特殊字符等方式,绕过文件类型检测。 3. 绕过文件大小限制:应用程序通常会限制上传文件的大小,攻击者可以通过分割文件、压缩文件等方式,绕过文件大小限制。 4. 绕过文件路径检测:应用程序会检测上传文件的路径,如果路径不符合要求,则会拒绝上传。攻击者可以通过构造特殊的路径,绕过文件路径检测。 5. 绕过文件名检测:应用程序会检测上传文件的文件名,如果文件名不符合要求,则会拒绝上传。攻击者可以通过构造特殊的文件名,绕过文件名检测。 为了避免文件上传漏洞的攻击,应用程序开发人员可以采取以下措施: 1. 对上传文件进行严格的类型、大小、路径、文件名检测,确保上传的文件符合要求。 2. 对上传文件进行病毒扫描和安全检测,确保上传的文件不包含恶意代码。 3. 限制上传文件的存储路径,确保上传的文件不会对系统造成危害。 4. 对上传文件进行权限控制,确保只有授权的用户才能访问上传的文件。 5. 定期更新应用程序和服务器的安全补丁,确保系统处于最新的安全状态。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值