文件上传漏洞简介

目录

漏洞原理

漏洞危害

利用场景

检测方法

防御方法

绕过手段

前端JS绕过

构造可解析后缀

修改Content-Type(MIME)

大小写绕过

文件头绕过

图片马

截断与特殊文件名

其他绕过 

尝试绕过的步骤


漏洞原理

原理

  • 攻击者构造恶意文件进行上传,而服务端没有对上传点进行合法性校验,攻击者能得知文件上
    传的位置,且文件能够被正确解析执行。如图所示:
总结
恶意文件能上传 + 文件路径可以获取 + 恶意文件能被访问或者执行 =文件上传漏洞

漏洞危害

  • 攻击服务器:可以通过上传和执行webshell来运行命令、浏览系统文件、甚至是接管服务

    器。

  • 攻击客户端:上传恶意文件还可能是的网站容易受到客户端攻击,例如xss或者劫持等。

  • 上传的文件可能会触发实时监控工具中的漏洞。

  • 上传功能可能触发程序报错、泄露敏感信息(暴露内部信息,比如服务器内部路径)。

  • 上传功能可能被恶意利用,比如被用来托管恶意软件、非法软件或成人内容。上传的文件还可

    能包含使用隐写术隐藏的数据。

上传具体文件可能带来的危害:

  • 允许上传脚本语言文件且解析 ==> getshell
  • 允许上传html ==> xsscsrf、登陆劫持...
  • 允许上传压缩包 ==> 压缩包DOS、解压文件getshell
  • 允许上传pdf ==> pdf xss
  • 允许上传exceldocx ==> xxe

利用场景

一切有上传点的地方

  • 更换头像,背景图片
  • 上传附件

检测方法

寻找到注入点

          根据功能点寻找、爆破上传接口、富文本编辑器上传等等

上传目标点不允许上传的文件

          通过任意上传、绕过防御上传、绕过waf上传、条件竞争上传等方式上传目标文件

找到上传文件的路劲进行访问

          服务端直接返回完整访问地址、返回部分需要拼接、爆破访问地址等方式

防御方法

1.后缀白名单(最有效直接),只允许上传服务端允许上传的文件

2.内容完整性检测,检查上传的文件是否包含恶意代码

3.检查是否可以找到上传的文件的访问路径,并检查是否可以直接访问或执行

绕过验证或者限制措施

  •  检查网站是否仅在客户端js验证了文件类型
  • 检查网站是否仅通过http请求中的“content-type”检查文件类型

  • 检查网站是否仅通过文件扩展名来检查

绕过手段

前端JS绕过

构造可解析后缀

上传特殊可解析后缀,通过各语言可解析的后缀进行绕过上传(通常针对黑名单)

语言可解析后缀

asp/aspx

asp,aspx,asa,asax,ascx,ashx,asmx,cer,aSp,aSpx,aSa,aSax,aScx,aShx,aSmx,cEr

php

php,php5,php4,php3,php2,pHp,pHp5,pHp4,pHp3,pHp2,html,htm,phtml,pht,Html,Htm,pHtm

jsp

jsp,jspa,jspx,jsw,jsv,jspf,jtml,jSp,jSpx,jSpa,jSw,jSv,jSpf,jHtml

修改Content-TypeMIME

后端通过Content-Type来校验文件类型,抓包拦截修改Content-Type为其允许的文件即可(如图),常见类型见下

文件类型后缀名Content-type 
超文本标记语言文本 .html、.htmltext/html
普通文本.txttext/plain
RTF 文本 .rtfapplication/rtf
GIF 图形 .gifimage/gif
JPEG 图形 .jpeg、.jpg image/jpeg
au 声音文件 .au audio/basic
MIDI 音乐文件 mid、.midi audio/midi、audio/x-midi
RealAudio 音乐文件 .ra、.ramaudio/x-pn-realaudio
MPEG 文件 .mpg、.mpegvideo/mpeg
AVI 文件 .avivideo/x-msvideo
GZIP 文件 .gzapplication/x-gzip
TAR 文件 .tarapplication/x-tar

大小写绕过

将文件后缀进行大小写混写,如:PhpPHpPHP/jSpJSPjsP

文件头绕过

文件头,文件幻数是用来唯一标识文件类型的一系列数字(十六进制),也就是我们常说的文件头,当白名单限制了文件幻数时,我们就要给我们的文件制造可以通过检测的文件头即可,常见对应文件的值如下:

.jpg

Value = FF D8 FF E0

.gifValue = 47 49 46 38 ==> GIF89a
.pngValue = 89 50 4E 47
.htmlValue = 68 74 6D 6C 3E 10
.xmlValue = 3C 3F 78 6D 6C

使用Winhex打开一张图片即可查看,也可进行修改,如下图:

图片马

图片马:如果后缀可以为jspphp等,但是内容必须为图片,那么可以用图片马来进行getshell,常用的生成手法如下

在cmd中

copy test.gif/b+test.php/a gifshell.gif

  • /b是二进制形式打开
  • /a是ascii方式打开

截断与特殊文件名

截断:

0x00截断绕过:文件名后缀有一个%00字节,可以截断某些函数对文件名的判断。在许多语言函数中,处理字符串的函数中0x00被认为是终止符。

例如: 网站上传函数处理xxx.asp%00.jpg时,首先后缀名是合法的jpg格式,可以上传,在保存文件时,遇到%00字符丢弃后面的.jpg,文件后缀最终保存的后缀名为xxx.asp

截断条件:

php版本小于5.3.4 详情关注CVE-2006-7243

php的参数开关上设置里magic_quotes_gpc为OFF状态

特殊文件名:

特殊文件名绕过,在Windows下有一个特性就是如果文件后缀以点‘.’或者空格‘ ’结尾的后缀名时,系统在保存文件时会自动去除点和空格。但要注意 Unix/Linux 系统没有这个特性。因为有些服务器端的后缀名检测是取文件名最后一个.后面的字符串,拿这个字符串与黑名单列表对比

如下图:

其他绕过 

1、条件竞争:如果网站的文件上传的过程是:“服务器获取文件–>保存上传临时文件–>重命名移动临时文件” 这样的步骤时,就可以通过不断地对文件进行上传和访问,从而使服务器还未重命名移动临时文件时,我们就利用时间差打开了文件,成功执行其中的恶意代码。

2、双后缀绕过,顾名思义,写两个后缀可能指检测到去掉一个

尝试绕过的步骤

根据网站时由什么语言开发。则上传什么脚本语言

1、前端绕过

2、黑名单绕过

3、白名单绕过

4、其他方式,竞争上传、双上传、文件内容等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/18759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot 开发 -- Redis 集成及配置

一、引言 Redis 是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中介。在现今的高并发、大数据量的互联网应用中,Redis 的作用愈发重要。Spring Boot 提供了对 Redis 的集成支持,使得开发者可以更加便捷地在…

低调收藏,这份MobaXterm使用指南很全面

中午好,我的网工朋友。 MobaXterm,这个名字对于我们这些经常需要在Windows环境下与Linux服务器打交道的人来说,应该并不陌生。它不仅仅是一个SSH客户端,更是一个功能强大的终端工具箱,集成了X服务器和Unix命令集&…

hivesql如何在数据量超大时避免join操作

hivesql如何在数据量超大时避免join操作 当在hive中对超大的表进行查询时,在这种情况下不能进行mapjoin,也选择不进行skewjoin或是smbjoin 。此时,针对特定的应用场景,可以设计特殊的sql避免join操作。下面给出一个典型案例&…

个人租用国外服务器的全指南

在全球化的数字时代,无论是出于业务扩展、学术研究还是个人娱乐等目的,个人用户对国外服务器的需求日益增长。选择租用国外服务器,尤其是来自科技发达地区如美国硅谷的服务器,能够享受到诸多优势。接下来,我们将详细探…

醒图及国际版 v9.9.9/v3.9.0 解锁会员(让照片栩栩如生的神奇应用)

介绍 醒图App是一款专业的照片编辑工具,旨在帮助用户高效地处理和优化照片,使其更加引人注目。这款应用程序配备了多样化的功能,包括图像增强、滤镜应用以及色彩调整等,以满足各种编辑需求。其设计了一个直观的用户界面&#xff…

全球首例光伏电场网络攻击事件曝光

快速增长的光伏发电正面临日益严重的网络安全威胁。近日,日媒报道了首个针对光伏电场的网络攻击事件。 首例公开确认的光伏电网攻击 日本媒体《产经新闻》近日报道,黑客劫持了一个大型光伏电网中的800台远程监控设备(由工控电子制造商Contec生产的Solar…

ABS三星!IF:6.0+新刊,中科院2区SSCI,1个月左右见刊!OA无需版面费,领域权威期刊!

【欧亚科睿学术】 01 期刊基本概况 【期刊类型】管理类SSCI 【出版社】TAYLOR & FRANCIS出版社 【期刊概况】IF:6.0-7.0,JCR2区,中科院2区 【版面类型】正刊,仅10篇版面 【预警情况】2020-2024年无预警记录 【收录年份…

Linux下压缩、删除、移动、拷贝操作(命令行)

Linux下压缩、删除、移动、拷贝操作(命令行) 一、写作动机 由于经常使用Linux系统,有一些常用的操作,记录一下。 二、命令 压缩文件 zip file.zip file.txt压缩文件夹 zip -r file.zip file删除文件 rm -f file.txt删除文件…

详解 HTML5 服务器发送事件(Server-Sent Events)

HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新。 EventSource 是单向通信的(是服务器向客户端的单向通信,客户端接收来自服务器的事件流)、基于 HTTP 协议(EventSource 是基于标准…

TalkingData数据统计

一、简介 TalkingData是一家提供移动应用数据统计和分析的公司,专注于移动应用数据的收集、分析和可视化。TalkingData通过收集应用程序的用户行为数据,如应用下载量、用户留存率、用户活跃度等,帮助开发者了解用户行为趋势、优化应用功能、…

word 全文中 英文字体 和 样式的字体 莫名奇妙地 被改成 “等线”

word全文中英文字体和样式的字体莫名奇妙地被改成“等线” sm word又抽风了,改完论文保存后打开突然发现全文字体都不对劲,吓得冷汗直冒:虽然我用git管理了论文版本,但是只有比较大的修改我才上传了,刚刚修了几个小时…

React-useState

useState基础使用 useState是一个React Hook(函数),它允许我们向组件添加一个状态变量,从而控制影响组件的渲染结果 本质:和普通JS变量不同的是,状态变量一旦发生变化组件的视图UI也会跟着变化&#xff0…

【哈希】闭散列的线性探测和开散列的哈希桶解决哈希冲突(C++两种方法模拟实现哈希表)(2)

🎉博主首页: 有趣的中国人 🎉专栏首页: C进阶 🎉其它专栏: C初阶 | Linux | 初阶数据结构 小伙伴们大家好,本片文章将会讲解 哈希函数与哈希 之 哈希桶解决哈希冲突 的相关内容。 如果看到最后…

2024年5月份架构师考试真题完整版

截至2024-5-28 19:24:14已全部收录完成 共75到选择题,5道案例题,4道论文题。题目顺序不分先后。 全网最全的2024年5月份架构师考试真题回忆版,包含答案和解析。 群友 疯狂程序员 花落无声 半夏 鲁迅-三战老兵(预备役) 本次必成 锦鲤附体 2024…

超详细介绍基于微调 Faster R-CNN实现海上航拍图像中检测小物体-含源码与数据集免费下载

在航拍图像中检测小物体,尤其是对于海上救援等关键应用而言,是一项独特的挑战。及时检测水中的人可能意味着生死之间的差别。我们的研究重点是微调 Faster R-CNN(一种强大的两阶段物体检测器),以满足这一重要需求。 我们研究的核心是SeaDroneSee 数据集,这是一组重要的图…

618数码产品怎么选?四大必看推荐,自费无广测评

6.18盛宴即将开启,你是否已摩拳擦掌,准备在电商海洋中乘风破浪?然而,在繁多的商品和错综复杂的优惠面前,你是否感到些许迷茫?团团这位网购小能手,特地为大家梳理了一份精选购物清单。这些宝贝不…

github使用相关问题

建议 最好科学上网配置ssh key 可能错误 clone remote: Enumerating objects: 357, done. error: RPC failed; curl 18 transfer closed with outstanding read data remaining fatal: the remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed 解…

sectigo企业通配符证书1590元13个月

通配符SSL证书可以同时保护多个域名站点,简化了用户管理SSL证书的流程,降低了管理成本,因此,不管是个人开发者还是企事业单位开发者都愿意尝试这款SSL证书产品。今天就随SSL盾小编了解Sectigo旗下的企业通配符SSL证书。 1.Sectig…

如何创建一个vue项目?详细教程,如何创建第一个vue项目?

已经安装node.js在自己找的到的地方新建一个文件夹用于存放项目,记住文件夹的存放路径,以我为例,我的文件夹路径为D:\tydic 打开cmd命令窗口,进入刚刚的新建文件夹 切换硬盘: D: 进入文件夹:cd tydic 使…

迈向F5G-A,开启全光万兆新时代——南通移动完成全市首个50G-PON技术验证

近日,南通移动在崇川区完成全市首个50G-PON万兆技术现网验证,标志着南通成为首批具备F5G-A(The 5th GenerationFixed Network-advanced)的万兆光网城市,使其成为网速最快、覆盖最全、时延最低的城市之一。 作为全光万兆的关键技术&#xff0c…