分享好友 最新动态首页 最新动态分类 切换频道
文件上传漏洞
2024-12-28 22:09

在文件上传的功能处,若服务端脚本语言未对上传的文件进行严格验证和过滤,导致恶意用户上传恶意的脚本文件时,就有可能获取执行服务端命令的能力,这就是文件上传漏洞。
文件上传漏洞对Web应用来说是一种非常严重的漏洞。一般情况下,Web应用都会允许用户上传一些文件,如头像、附件等信息,如果Web应用没有对用户上传的文件进行有效的检查过滤,那么恶意用户就会上传一句话木马等Webshell,从而达到控制Web网站的目。

 

诱因:服务端脚本语言未对上传的文件进行严格验证和过滤

 

 

 

 

 

  1. 相册、头像上传
  2. 视频、照片分享
  3. 附件上传(论坛发帖、邮箱)
  4. 文件管理器:编辑器

 

 

  1. 任意上传
  2. JS验证:能在可控制台能改
  3. MIME-type检测
  4. 文件头检测
  5. 文件扩展名黑白名单检测
  6. 文件加载检测

 

 

 文件上传漏洞分类图解

 

 

任意文件上传:

没有任何校验

绕过JS上传:

校验发生在前端

绕过后端校验上传:

校验发生在后端

绕过文件类型校验

绕过扩展名校验

绕过文件头校验

解析漏洞上传:

中间件解析漏洞

其他类型

 

  1. 未过滤或Web前端过滤被绕过

  2. 文件检测被绕过

  3. 中间件解析

  4. 不完善的黑名单扩展名

  5. 文件路径截断

  6. HTTP不安全方法(PUT协议)

 

 

未过滤是没有对文件上传格式做限制,前端绕过是指当前页面中js对上传文件做限制,可通过HTTP抓包工具进行改包上传。

这类相对好理解,前部分是可以任意上传文件,后部分是因为只是前端限制,只用上传可以上传的文件,然后抓包对后缀进行修改就可以成功。

 

检测CONTENT-TYPE内容(判断是否为特定数据类型),检测文件头,检测文件扩展功能相关内容。

 

 

 

这里看到让我们上传一个php文件,但是上传后显示[非图片文件]

这里我使用burpsuite进行截包然后重放。

 

发现并没用但是将Content-Type:改为 image/jpeg则成功上传

 

 

 

这是php的一串检查图片代码,使用getimagesize函数无法判断其图片是无效的

我们只需要再上传的文件头加入GIF89a 便可以欺骗服务器认为我们的文件是图片。

这里举几个常见的文件头对应关系:

(1) .JPEG;.JPE;.JPG,"JPGGraphic File"

(2) .gif,"GIF 89A"

(3) .zip,"Zip Compressed"

(4) .doc;.xls;.xlt;.ppt;.apr,"MS CompoundDocument v1 or Lotus Approach APRfile"

 

由于中间件本身的缺陷,再对上传文件进行解析时会出现一些不可预料的错误从而导致被利用进行上传绕过。

 

第一种,当建立*.asp、*.asa格式的文件夹时,其目录下任意文件都会被iis当作asp文件来解析。

例如:创建xxx.asp目录那么在xxx.asp目录下如果存在1.txt文件会被当做1.asp文件来执行。

第二种,在IIS6.0下分号后的不被解析。

例如:xxx.asp;.jpg会被服务器看作为xxx.asp文件

IIS7.0/7.5中:任意文件名/任意文件名.php就会被解析为php

在Apache 1.x和Apache 2.x中存在解析漏洞。

Apache在解析文件时有一个原则,当碰到不认识的扩展名时,将会从后向前解析,直到碰到认识的扩展名为止,如果都不认识,则会暴露其源代码。

如:1.php.rar.sa.xs就会被解析为php,可以据此来绕过文件名限制

在默认Fast-CGI开启的情况下上传一个xxx.jpg,内容为<?php eval($POST[‘cmd’])?>的文件然后访问xxx.jpg/.php在该目录下就会生成一句话木马文件xxx.php。

当php的配置文件中的选项cgi.fix_pathinfo= 1开启时,当访问http://www.example.com/xxx.txt/xxx.php时,若xxx.php不存在,则PHP会递归向前解析,将xxx.txt当作php脚本来解析

 

因为程序员在开发文件上传时加入了不允许上传类型的黑名单,但是黑名单内容并不完善,这时候我们可以利用一些其他扩展名绕过黑名单限制,这里就不进行详细的赘述了,这里列举一些可用于绕过的文件名:

  • PHP: php2、php3、php5、phtml、pht
  • ASP: aspx、ascx、ashx、cer、asa
  • JSP: jspx

 

利用条件:php版本小于5.3.4,php的为OFF状态

详情:CVE-2006-7243

影响版本:0.5,0.6,0.7<=0.7.65,0.8<=0.8.37

Nginx在图片中嵌入PHP代码然后访问xxx.jpg%00.php来执行其中的代码

部分上传功能在对后缀名进行验证时存在缺陷,导致在文件写入过程中产生错误,导致可通过十六进制截断符(%00)对后缀进行截断。

例如:

 

上传处理时将对检测到%00(这里需要对%00进行urldecode)并对.jpg字符串进行截断删除,最终文件名为xxx.php导致可成功上传动态脚本到服务器上

 

WebDav是一种基于HTTP1.1协议的通信协议,它扩展了HTTP协议。在开启WebDav后若支持PUT、Move、Copy、Delete等方法,就会存在安全隐患。

 

测试流程:

首先提交options 请求看服务器是否支持此类方法

OPTIONS /HTTP/1.1

Host:www.example.com

 

通过PUT方法上传脚本文件

PUT /xxx.txtHTTP/1.1

Host:www.example.com

Content-Length:30

 

通过move或者copy方法移动文件

COPY /xxx.txtHTTP/1.1

Host:www.example.com

Destination:http://www.example.com/cmd.asp

 

http://blog.csdn.net/u011499747/article/details/78108240

 

 

很多时候网站检测的过于严格,我们只能上传白名单的文件格式,这时我们可以尝试去看看网站是否存在一些文件包含漏洞,结合我们上传的文件进行联合利用。

 

之前我遇到过这样一个网站,就是黑白名单共存。该网站的架构是这样的,在后台有个地方是可以设置上传的白名单内容,在代码层面又含有黑名单检测。当时猜测他网站的判断是这样的:

if(正则匹配在白名单中==正则匹配不在黑名单中)

       上传成功

Else:

       上传失败

于是我清空了白名单的内容,然后上传了在黑名单中的文件格式于是,代码false==false 上传成功。

 

很多时候我们通过各种源码泄露,例如:.svn、.git、网站备份、任意文件下载等等获取到了网站的源码,我们可以进行代码审计寻找文件上传的接口,我之前测试过的很多网站他们的代码都有一个api接口用来处理上传的文件,而黑白名单仅仅是进行了上传检测,我们可以在本地直接构造一个上传页面然后调用这个api接口直接上传文件解析。

 

由于windows会将文件的后缀中的空格以及点进行过滤,如果遇到是黑名单校验的,如限制不允许上传PHP文件,而系统又是windows系统,那么我们可以上传xx.php ,或者xx.php.,通过这种方式就可以绕过黑名单检验的文件上传!

 

如果Apache中.htaccess可被执行并可被上传,那么可以尝试在.htaccess中写入:

         <FilesMatch"xxx.jpg"> SetHandler application/x-httpd-php </FilesMatch>

然后再上传xxx.jpg的木马,这样xxx.jpg就可被解析为PHP文件了。

 

 

  1. 客户端检测,使用 js 对上传图片检测,包括文件大小、文件扩展名、文件类型等
  2. 服务端检测,对文件大小、文件路径、文件扩展名、文件类型、文件内容检测、对文件重命名等
  3. 服务器端上传目录设置不可执行权限
  4. 检查网站有没有文件解析漏洞和文件包含漏洞
  5. 将文件上传到单独的文件服务器,并且单独设置文件服务器的域名

 

 

最新文章
聚焦创新应用,AI引领赋能 | 2024 AI+数字笔迹创新应用发展论坛在渝举行
央广网北京12月11日消息12月6日,以“聚焦创新应用,AI引领赋能”为主题的2024AI+数字笔迹创新应用发展论坛在重庆两江新区成功举办。本届论坛由重庆市大数据应用发展管理局和重庆两江新区管理委员会联合指导,重庆亲笔签数字科技有限公司主
热门的手游戏大全排行榜 有趣的手机游戏前五名2023
现代有不少年轻人离不开手机游戏,休闲时间总喜欢进入游戏的世界中消磨时光,手机端也有不少堪称艺术品的游戏值得一玩,那么有趣的手机游戏都有哪些呢?下文就是热门的手游戏大全排行榜了,文章中记载的这些手游热度极高而且玩起来非常有趣
我刷的短视频通古代,祖龙人麻了
【飞卢小说网独家签约小说:我刷的短视频通古代,祖龙人麻了】江林下载神奇APP,手机刷视频同步直播古代。刷鬼畜视频【东汉变种人!】张飞:大哥,你这激光眼真厉害,俺这就去把华佗老儿捆来。刷历史视频【10分钟看完,华夏五千年时刻表!
网络营销推广方案案例(网络营销推广方案案例分享)
在当今数字化时代,网络营销推广已成为企业和个人推广品牌、产品或服务的重要手段,一个成功的网络营销推广方案能够帮助企业快速提升知名度、增加销售额,并与目标客户建立良好的互动关系,本文将通过一个具体的网络营销推广方案案例,详细
如何快速优化提升百度SEO关键词排名?
数字化时代,越来越多的企业都希望通过搜索引擎SEO优化来提升网站排名,尤其是在中国市场,百度作为主要搜索引擎,其SEO策略尤为关键。本文七月笙笙July Brand将详细探讨如何快速优化提升百度SEO关键词排名?稳定提升网站在搜索引擎的可见
学Python你不得不会的快捷键大全!
快捷键说明Ctrl+Enter在下方新建行但不移动光标Ctrl+Alt+I自动缩进行Ctrl+Alt+L格式化代码(与QQ锁定热键冲突,关闭QQ的热键)Ctrl+/注释(取消注释)选择的行Ctrl + Shift + +展开所有的代码块Ctrl
抖音集团CEO辞职!小红书新增“附近”一级入口丨电商大事
【亿邦原创】抖音集团CEO辞职!小红书新增“附近”一级入口;出海业务大涨44%,阿里公布财报;TikTok Shop将新增八大站点。大公司·大事件字节跳动抖音内部信称张楠不再担任CEO 将专注负责剪映业务2月7日,字节跳动CEO梁汝波发布内部信,宣
厂商其他下载电脑 安卓应用 安卓手游 苹果应用 苹果手游
快手4.0旧版本是小编特别给大家找的旧版本啊,各种版本都有人要,老老老版本也有,大家都可以在绿色资源网找到,喜欢这个版本的赶紧来下载吧~GIF快手是一款能够在手机上快速制作GIF动画的应用,制作好的动画还可以同步分享到微博上。安装新
构建强大且易用的目录列表网站,策略、技巧与实战经验分享,打造高效、实用、美观的网站目录大全,策略、技巧与实战经验分享,打造强大便捷网站目录大全,策略、技巧与实战经验分享
本指南旨在帮助你创建一个强大且易用的网站目录列表网站。在构建过程中,我们将讨论以下几个关键策略、技巧和实战经验:,,1. **清晰分类**:明确地定义并组织目录元素是构建目录列表的基础。将网站内容划分为基本的类别(如产品/服务、新
深圳市分公司深耕“五知”精准获客
  日前,广东省深圳市罗湖区邮政分公司运用“五知”(知路向、知时限、知价格、知投诉、知行业评价)对标分析法,了解到某财险客户在专票寄递服务上有需求,于是在“五知”基础上对该客户进行画像,迅速制定了个性化解决方案,为客户提供
相关文章
推荐文章
发表评论
0评