Web安全 - 文件上传漏洞

VSole2021-10-19 07:24:34

File Upload

一、原理

一些web应用程序中允许上传图片,文本或者其他资源到指定的位置。

文件上传漏洞就是利用网页代码中的文件上传路径变量过滤不严将可执行的文件上传到一个到服务器中,再通过URL去访问以执行恶意代码。

二、检测与绕过

客户端检测(Javascript检测)

在网页上写一段Javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式。

绕过方法:

1.直接禁用Javascript实现绕过。

2.先改成允许上传的文件类型,然后用Burpsuite改成脚本文件类型,即可绕过。

服务端检测(MINE类型检测)

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。

绕过:用Burpsuite抓到请求包,更改Content-Type为允许的类型。

常见MIMETYPE

audio/mpeg -> .mp3
application/msword -> .doc
application/octet-stream -> .exe
application/pdf -> .pdf
application/x-javascript -> .js
application/x-rar -> .rar
application/zip -> .zip
image/gif -> .gif
image/jpeg -> .jpg / .jpeg
image/png -> .png
text/plain -> .txt
text/html -> .html
video/mp4 -> .mp4

服务端检测(目录路径检测)

对目录路径的检测不够严谨而导致可以用00截断进行攻击

绕过:/123.php%00.gif/123.gif -> /123.php

服务端检测(文件扩展名检测)

1.文件名大小写绕过,如:*.aSP *.AsP

2.名单列表绕过,如:*.asa *.cer

3.特殊文件名绕过 //windows文件名最后不能有.或空格,可设为 *.php. 或 *.php+

4.0x00截断绕过 //如:*.php(0x00).jpg 或 *.php%00.jpg

5.文件包含漏洞

6.服务器解析漏洞

7..htaccess文件攻击

SetHandler application/x-httpd-php

.htaccess文件(或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

服务端检测(文件内容检测)

文件幻数检测(文件开头)

幻数 magic number,它可以用来标记文件或者协议的格式,很多文件都有幻数标志来表明该文件的格式。

.jpg   FF D8 FF E0 00 10 4A 46 49 46
.gif   47 49 46 38 39 61
.png   89 50 4E 47

文件加载检测

1.对渲染/加载测试的攻击方式是代码注入绕过

使用winhex在不破坏文件本身的渲染情况下找一个空白区进行填充代码,一般会是图片的注释区

2.对二次渲染的攻击方式是攻击文件加载器自身

如果要对文件加载器进行攻击,常见的就是溢出攻击;上传自己的恶意文件后,服务器上的文件加载器会主动进行加载测试,加载测试时被溢出攻击执行 shellcode,比如 access/mdb 溢出

三、防御

  1. 文件扩展名服务端白名单校验。
  2. 文件内容服务端校验。
  3. 上传文件重命名。
  4. 隐藏上传文件路径。
  5. 限制相关目录的执行权限,防范webshell攻击。
文件上传web安全
本作品采用《CC 协议》,转载必须注明作者和本文链接
Weblogic是美国Oracle公司出品的一个应用服务器(application server),确切的说是一个基于Java EE架构的中间件,是用于开发、集成、部署和管理大型分布式Web应用、网络应用和 数据库应用的Java应用服务器。 Weblogic将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中,是商业市场上主要的Java(J
一些web应用程序中允许上传图片,文本或者其他资源到指定的位置。 文件上传漏洞就是利用网页代码中的文件上传路径变量过滤不严将可执行的文件上传到一个到服务器中,再通过URL去访问以执行恶意代码。
文件上传漏洞指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力 文件上传后常见的安全问题: 1.上传文件web脚本语言,服务器的web容器解释并执行了用户上传的脚本 导致代码执行
Fuxploider是一种开源渗透测试工具,可自动检测和利用文件上传表单缺陷的过程。该工具能够检测允许上传的文件类型,并能够检测哪种技术最适合在所需的Web服务器上上传Web Shell或任何恶意文件
黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。web安全主要就是在上网用户访问互联网时,保证信息的保密性、完整性、真实性。web安全常见的攻击手段有:SQL注入、XSS跨站脚本、文件包含文件上传、网页挂马等。
Web安全-一句话木马
2022-07-27 06:43:56
概述在很多的渗透过程中,渗透人员会上传一句话木马到目前web服务目录继而提权获取系统权限,不论asp、php、jsp、aspx都是如此,那么一句话木马到底是什么呢?
Web日志安全分析浅谈
2022-01-12 06:36:15
attack=test';select//1//from/**/1,此时请求状态码为200,但是此注入攻击并没有得到执行,实际情况中,还会有更多情况导致产生此类的噪声数据。抛开这类情况不谈,我们来说说在一般应急响应场景中我们分析日志的常规办法。假设我们面对的是一个相对初级的黑客,一般我们直接到服务器检查是否存有明显的webshell即可。
这个世界充满了待解决的迷人问题,做一个黑客有很多乐趣,但是需要颇费气力才能获得这些乐趣。这些动力需要动机。
VSole
网络安全专家