非法文件上传漏洞技术

1 上传技术基础

1.1 JS验证绕过类

  如何判断为本地验证呢? 一般情况下速度较快的返回信息认为是本地验证,但有时候需要根据抓包以及跟踪上传代码来分析是否为本地验证。

  •  删除验证方法绕过上传
  •  修改过滤白名单绕过上传

  在客户端的检测中,通常使用JS对上传图片检测,包括文件大小、文件拓展名、文件类型等。在绕过本地上传限制时,可以使用Firebug对客户端的脚本进行编辑。

1.2 MIME类型检测绕过类

  MIME作用:使用客户端软件,Web服务器使用MIME来说明发送数据的种类,Web客户端使用MIME来说明希望接收到的数据类型。

  在检测绕过过程中,可以使用BurpSuite抓包,拦截并更改相应提交数据,后述几种绕过方法类似。

1.3 文件扩展名检测绕过类

  PHP 语言除了可以解析以 php 为后缀的文件,还可以解析 php2、php3、php4、php5这些后缀的文件,同时不同的服务器所支持的文件类型也不尽相同。

1.4 文件内容检测绕过类

  对于文件内容检测,可以使用BurpSuite修改提交的数据包,可通过在末尾添加几个空格后粘贴“一句话”,然后修改相应的尾缀为 php 。注,上述的“一句话”为一句话木马相应的代码。

1.5 空字符截断目录路径检测类

  对于空字符截断目录路径检测类,可以使用BurpSuite修改上传保存的文件名,并且通过Hex进行空字符截断。00是一个截断字符的16进制,截断字符后面的都会被截断,也就是被忽略,所以对于uploading/1.php .jpg 就变成了uploadimg/1.php,从而实现了上传php文件的目的。

2 解析导致的上传漏洞

2.1 IIS 6.0 目录路径解析漏洞

  在IIS 6.0目录路径检测解析中,文件名字为 ".asp/xxx.jpg" 或者 ".asa/xxx.jpg",同样会被IIS当作 ASP 文件来解析并执行。

  说明:首先请求 /aaa.asp/xxx.jpg,从头部查找 " . ",获得了 .asp/xxx.jpg,查找 " / ",如果有这内存截断,所以 /aaa.asp/xxx.jpg 会当作 /aaa.asp 来进行解析。

2.2 IIS 6.0 站上的解析缺陷

  在IIS 6.0目录路径检测解析,文件的名字为 ".php;xxx.jpg",也同样会被IIS当成 PHP 文件类解析并执行。

  说明:首先请求 /aaa.php;xxx.jpg,从头部查找 " . ",获得了 .php;xxx.jpg,查找 " ; ",如果有则 内存截断,所以 /aaa.php;xxx.jpg 会被当作 /aaa.php 来进行解析。

2.3 Apache站上的解析缺陷

  Apache是从后面开始检查后缀,按最后的一个合法后缀执行。在进行绕过解析过程中,将需要上传的木马文件后缀名改为 .7z、 .cab、 .zip、 .bmp 等允许的上传类型都可以上传成功。

2.4 htaccess文件上传解析漏洞

  .htaccess文件中定义了将上传的文件后缀名为 .jpg 格式的文件以 php 格式来解析文件。.htaccess 是apache服务器中的一个配置文件,不是上传的文件的黑名单之内,所以该类型文件可以上传成功。

AddType    application/x-httpd-php    .jpg

3 上传技术之编辑器

3.1 FCK编辑器

  • 查看FCKeditor版本信息
   http://www.xxx.com/fck242/_samples/default.html

   http://www.xxx.com/fck242/_whatsnew.html
  • FCKeditor上传地址
   http://www.xxx.com/fck242/editor/filemanager/browser/default/connectors/test.html

   http://www.xxx.com/fck242/editor/filemanager/upload/test.html

   http://www.xxx.com/fck266/editor/filemaneger/connectors/test.html

   http://www.xxx.com/fck266/editor/filemaneger/uploadtest.html
  • FCKeditor漏洞利用:首先上传图片看编辑器是否可利用,然后结合前面的解析漏洞上传木马

4 防护

  • 客户端检测,使用JS对上传图片检测,包括文件大小、文件扩展名、文件类型等
  • 服务器端检测,对文件大小、文件路径、文件扩展名、文件类型、文件内容检测、对文件重命名等
  • 其他限制,服务器端上传目录设置不可执行权限

学习笔记:http://ichunqiu.com/topics/78

时间: 2024-08-08 13:04:08

非法文件上传漏洞技术的相关文章

WEB攻击与防御技术 pikachu——文件上传漏洞

文件上传漏洞 一.client check 首先看到标题是客户端验证 用BURP抓包,由于是客户端的检验,直接将抓到的包的文件后缀.png改成.php 发送后发现成功绕过,上传成功 二.MIME type MIME类型还是要借助Burp工具来利用 将content type文件头改成png的文件头 别的都不需要去更改,点击发送就会发现,文件上传成功,MIME绕过成功 三.getimagesize 原文地址:https://www.cnblogs.com/p201721210024/p/12077

文件上传漏洞原理与实例测试

0x00 什么是文件上传 为了让用户将文件上传到网站,就像是给危机服务器的恶意用户打开了另一扇门.即便如此,在今天的现代互联网的Web应用程序,它是一种常见的要求,因为它有助于提高业务效率.企业支持门户,给用户各企业员工有效地共享文件.允许用户上传图片,视频,头像和许多其他类型的文件.向用户提供的功能越多,Web应用受到攻击的风险和机会就越大,这种功能会被恶意用户利用,获得到一个特定网站的权限,或危及服务器的可能性是非常高的. 0x01 为什么文件上传存在漏洞 上传文件的时候,如果服务器脚本语言

【原创】JEECMS v6~v7任意文件上传漏洞(1)

文章作者:rebeyond 受影响版本:v6~v7 漏洞说明: JEECMS是国内Java版开源网站内容管理系统(java cms.jsp cms)的简称.该系统基于java技术开发,继承其强大.稳定.安全.高效.跨平台等多方面的优点:采用SpringMVC3+Spring3+Hibernate3+Freemarker主流技术架构.广泛应用于政府(部委和省级政府部门.市.县.乡及委办局).教育科研(大.中.小学及各地方教育局).电信运营商.金融(证券.保险及银行).企业(矿业.煤炭.旅游.石油集

Web应用安全之文件上传漏洞详解

什么是文件上传漏洞 文件上传漏洞是在用户上传了一个可执行的脚本文件,本通过此脚本文件获得了执行服务器端命令的功能,这种攻击方式是最为直接,最为有效的,有时候,几乎没有什么门槛,也就是任何人都可以进行这样的攻击.文件上传为什么会是漏洞呢?文件上传本身是没有问题的,问题是文件上传后看服务器怎么来处理,怎么来解析这个文件.如果说服务器处理的模式不够安全,那么就会导致严重的后果,也就是上传了恶意的可执行文件以后,服务器端对此文件进行执行. 文件上传后导致的安全问题 上传的文件是web脚本语言,服务器的w

owasp文件上传漏洞简析

0x01: 文件上传漏洞起因于,上传程序没有对上传文件格式进行正确判断,导致可执行程序上传到网站目录. 常见的验证上传文件有两种:1.js本地验证,通过js获取上传文件后缀名,并和白名单比较,匹配则上传成功.由于js代码是本地验证,存在绕过风险(去除js代码,构造表单数据,直接绕过). 2.后端程序验证,通过post数据到file_upload()函数,$_FILES['file']['type']判断上传程序后缀名. function file_upload(){ $file_name = $

文件上传漏洞攻击与防御

前言 从一年前开始学习web安全以来,一直都是在吸收零碎的知识,不断地看书与一些前辈的文章,中间也经过一些实践,学习相关的工具,但是却没真真正正地在脑中形成一套完整的体系.从不久前就想着要写一些博客,趁着这个机会,便好好梳理一下所学的知识,只是这些文章所写大部分内容也是搬运前辈的文章,鲜有自己所想所悟. 关于文件上传漏洞,百度一下便有许多文章出来,在这里我也稍稍做整理. 0x00 文件上传漏洞所需满足的条件 一是文件可上传(感觉这一句是废话).二是上传文件路径可知,如果路径不可知就没法访问,亦无

《白帽子讲WEB安全》学习笔记之第8章 文件上传漏洞

第8章 文件上传漏洞 8.1 文件上传漏洞概述 文件上传漏洞是指用户上传一个可执行的脚本文件,并通过此脚本文件活动执行服务器端的能力. 原理:由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件. 文件上传漏洞安全问题: q  上传文件是WEB脚本文件,服务器的WEB服务器解释并执行了用户上传的脚本,导致代码执行: q  上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行

PHP漏洞全解(九)-文件上传漏洞

本文主要介绍针对PHP网站文件上传漏洞.由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件,并能够将这些文件传递给 PHP解释器,就可以在远程服务器上执行任意PHP脚本,即文件上传漏洞. 一套web应用程序,一般都会提供文件上传的功能,方便来访者上传一些文件. 下面是一个简单的文件上传表单 <form action="upload.php" method="post" encty

文件上传漏洞原理以及防范

1. 什么是文件上传漏洞 程序员由于没有对上传的文件进行严格限定,导致黑客可以通过工具上传其他格式的程序文件(比如:webshell),这样黑客就会拿到一个可执行环境,在服务器上搞破坏. 一个常见的例子,很多网站存在上传图片的功能,如果不对上传图片的扩展名进行检测.过滤就会造成上传漏洞. 2. 如何防范上传漏洞 步骤:前端JS代码限定--->后台代码检测--->取消文件目录执行脚本的权限. 以如何防范图片上传漏洞做个过程分析: 新建一个解决方案: 2.1 第一步前端用JavaScript对上传