Web安全-之文件上传漏洞场景
1 上传漏洞危害介绍
上传是Web中最常见的功能,如果上传功能存在设计、编码缺陷,就容易形成上传漏洞,从而成为致命的安全问题,攻击者可以通过上传脚本木马,实现查看/篡改/删除源码和任意涂鸦网页,可以连接和操作对应的数据库,还可以通过操作系统漏洞、配置缺陷、信息泄露进行提权,获取操作系统提权,因此上传功能是Web安全测试中重点关注的高风险模块。
2 上传漏洞原因分析
上传漏洞形成的原因,主要由以下几种情况:
2.1 无安全防护措施,可以直接上传脚本
漏洞原因:上传功能未考虑安全问题,可以任意上传*.asp、*.aspx、*.php、*.jsp等可执行的脚本文件,不需要任意的绕过就可以直接获取Web权限。
原因分析:上传功能一定要考虑上传的安全性,需要理解上传漏洞的危害和风险。
2.2 采用黑名单扩展名,导致过滤不严格
漏洞原因:上传文件判断文件扩展名时,采用了黑名单机制,只是禁止*.asp、*.aspx、*.php、*.jsp这种已知的可执行文件扩展名,但没有限制*.cer、*.asa、*.PHP、*.JSP这类扩展名,从而导致过滤不严格,形成上传漏洞。
原因分析:上传文件判断扩展名时,应该采用名单机制,例如业务需要上传用户头像照片,那么我们可以写一个数组,只允许.jpg、.gif、.png、.bmp这些文件,当攻击者上传不在白名单中的文件扩展名时,应禁止上传并提示扩展名不正确。
2.3 仅通过客户端判断,存在绕过限制的漏洞
漏洞原因:上传文件判断文件类型时,通过客户端语言JavsScrip判断文件大小、类型和扩展名,上传白名单仅在JS中实现,而客户端过滤很容易通过工具绕过限制,达到攻击的目的。
原因分析:可以通过JS来判断文件大小、类型和扩展名,这样可以提高效率和应用性,但还需要在服务器端进行判断,服务器端判断是指通过php、jsp脚本代码来判断。
2.4 上传设计未考虑解析器的安全,导致发生解析漏洞
漏洞原因:上传设计时使用了白名单机制,但允许用户控制上传文件的文件名和保存文件时上级文件夹的名称。
原因分析:尽量避免用户可以操控上传到服务器的文件名称、上级文件夹名称,如果用户可以控制上级文件夹名称,那么需要对文件夹名称进行过滤,禁止上传携带特殊符号的文件目录,防止攻击者生成畸形的文件名而导致解析漏洞。例如:在IIS 6.0中,会将/hack.asp/test.jpg当成asp解析,因此必须要对test.jpg上级所有目录进行过滤(如果用户可以新建文件夹等场景,表示用户可以控制hack.asp这个值),避免解析漏洞。
2.5 Web容器配置漏洞,使用不安全HTTP方法实现上传攻击
漏洞原因:Web容器支撑PUT、MOVE、COPY等不安全的HTTP方法,但权限配置存在问题,导致攻击者可以通过PUT、COPY、MOVE上传脚本文件。
原因分析:尽量避免使用不安全的HTTP方法,如果是业务需要(例如REST接口),尽量使用原生态的类和方法,避免二次开发、扩展过程中出现上传漏洞,严格上讲这类不安全的HTTP方法,属于配置漏洞,因此不在本次讨论范围内。
2.6 第三方编辑器漏洞,例如FCK、eWebeditor
漏洞原因:很多产品使用了FCK、eWebeditor编辑器,方便富文件上传和管理,而这些编辑器版本较多,很多低版本本身就存在上传漏洞,因此也是上传漏洞的重灾区。
作者:jz
Web安全-之文件上传漏洞场景的更多相关文章
- 基于 java 【Web安全】文件上传漏洞及目录遍历攻击
前言:web安全之文件上传漏洞,顺带讲一下目录遍历攻击.本文基于 java 写了一个示例. 原理 在上网的过程中,我们经常会将一些如图片.压缩包之类的文件上传到远端服务器进行保存.文件上传攻击指的是恶 ...
- WEB安全:文件上传漏洞
文件上传漏洞过程 用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力. 一般的情况有: 上传文件WEB脚本语言,服务器的WEB容器解释并执行了用户上传的脚本,导致代码执行: ...
- web安全之文件上传漏洞攻击与防范方法
一. 文件上传漏洞与WebShell的关系 文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行.这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等.这种攻击方式是最为直接和有效 ...
- WEB安全性测试之文件上传漏洞
1.漏洞描述:文件上传漏洞,是指可以利用WEB上传一些特定的文件包含特定代码如(<?php phpnfo;?> 可以用于读取服务器配置信息.上传成功后可以点击) 上传漏洞是指用户上传了一个 ...
- web安全之文件上传漏洞
成因: 当文件上传时,若服务端脚本语言未对上传的文件进行严格验证和过滤,若恶意用户上传恶意的 脚本文件时,就有可能控制整个网站甚至是服务器,这就是文件上传漏洞. 权限: 1. 后台权限:登陆了后台,可 ...
- Web应用安全之文件上传漏洞详解
什么是文件上传漏洞 文件上传漏洞是在用户上传了一个可执行的脚本文件,本通过此脚本文件获得了执行服务器端命令的功能,这种攻击方式是最为直接,最为有效的,有时候,几乎没有什么门槛,也就是任何人都可以进行这 ...
- web服务端安全之文件上传漏洞
一.文件上传漏洞的原理 由于程序代码未对用户提交的文件进行严格的分析和检查,导致攻击者可以上传可执行的代码文件,从而获取web应用的控制权限. 常见于上传功能,富文本编辑器. 二.文件上传漏洞的防御 ...
- WEB服务端安全---文件上传漏洞
1.简述 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力.这种攻击方式是最直接和有效的,而且互联网中我们经常会用到文件上传功能,它本身是没有问题的,正常的业 ...
- web文件上传漏洞
什么是文件上传漏洞? 指利用系统的对文件上传部分的控制不足或处理缺陷,上传可执行的动态脚本文件/webShell进行攻击行为. 原因 对于上传文件的后缀名(扩展名)没有做较为严格的限制 对于上传文件的 ...
随机推荐
- Android 开源库 GitHub 托管
本文微信公众号「AndroidTraveler」首发. 背景 之前给大家写过一篇文章 Android 上传开源项目到 jcenter 实战踩坑之路,分享了上传开源项目到 jcenter 上面的一些踩坑 ...
- jq实现监听滚动条导致导航栏变色
1效果图 2 html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
- Anaconda的安装和详细介绍(带图文)
Anacond的介绍 Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项. 因为包含了大量的科学包,Anaconda 的下载文件比较大( ...
- php strpos注意的地方
php strpos注意的地方<pre> $pos = strpos('paihangbang2864195', strval(2864195)); </pre> 类型必须一致 ...
- EXISTS的用法介绍
比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHERE EXISTS( SELECT OrderID ...
- 还看不懂同事的代码?超强的 Stream 流操作姿势还不学习一下
Java 8 新特性系列文章索引. Jdk14都要出了,还不能使用 Optional优雅的处理空指针? Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下? 还看不懂同事的代码?Lambda ...
- C# II: Class ViewModelBase and RelayCommand in MVVM
好久不写WPF和MVVM,新建一个Project后,想起来ViewModelBase和RelayCommand没有.以下Code摘自MSDN上的Article:Patterns - WPF Apps ...
- Java多态——代码示例
刚开始看多态的文字定义时,总是不明白说的啥意思,看了一些示例代码后,总算知道了,其实也就是“多态”的字面意思. 如下: class A{ public void Out() { System.out. ...
- OFFICE 2010 每次打开提示安装的问题
OFFICE2010 安装后每次打开 文件总是提示配置 解决办法: 前提是office已经激活 注册表找到 HKEY_CURRENT_USER\Software\Microsoft\Office\14 ...
- SpringBoot系列教程JPA之指定id保存
原文链接: 191119-SpringBoot系列教程JPA之指定id保存 前几天有位小伙伴问了一个很有意思的问题,使用 JPA 保存数据时,即便我指定了主键 id,但是新插入的数据主键却是 mysq ...