文件上传漏洞简介

目录

漏洞原理

漏洞危害

利用场景

检测方法

防御方法

绕过手段

前端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,一经查实,立即删除!

相关文章

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

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

醒图及国际版 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年无预警记录 【收录年份…

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

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…

ScrumMaster认证机构及CSM、PSM、RSM价值比较

企业现有的经营管理模式和传统的瀑布式交付模式,已经不能适应快速变化的市场响应和客户需求,现代的敏捷工作方式在过去数年涌现,比如Scrum,XP,看板,DevOps等敏捷方法,近十年Scrum在国内企业中备…

近200个幼儿启蒙简笔画含步骤图含音频

其实早就想搞一下简笔画的相关数据,但奈何几乎所有简笔画类的数据中的图片都有大大的水印,今天正好遇到一个启蒙简笔画的数据,好的地方是:简笔画步骤都是4步,步骤都有说明,步骤图片没有水印,每个…

一款拥有15000+POC漏洞扫描工具

1 工具介绍 0x01 免责声明 请勿使用本文中所提供的任何技术信息或代码工具进行非法测试和违法行为。若使用者利用本文中技术信息或代码工具对任何计算机系统造成的任何直接或者间接的后果及损失,均由使用者本人负责。本文所提供的技术信息或代码工具仅供于学习&am…

深入分析 Android Activity (十)

文章目录 深入分析 Android Activity (十)1. Activity 的资源管理1.1 使用资源 ID 访问资源1.2 Drawable 资源1.3 使用 TypedArray 管理资源1.4 使用资源配置 2. Activity 的数据存储2.1 SharedPreferences2.2 文件存储2.3 SQLite 数据库2.4 ContentProvider 3. Activity 的性能…

一书读懂Python全栈安全,剑指网络空间安全

写在前面 通过阅读《Python全栈安全/网络空间安全丛书》,您将能够全面而深入地理解Python全栈安全的广阔领域,从基础概念到高级应用无一遗漏。本书不仅详细解析了Python在网络安全、后端开发、数据分析及自动化等全栈领域的安全实践,还紧密贴…