上传漏洞浅见

上传漏洞

0xx1 上传漏洞简介

如何确定web应用程序是否存在上传漏洞呢?比如,有些网站,用户可以上传自己的个性头像,即图片文件,但是文件上传时并没有做验证,导致用户可以上传任意文件,这就是上传漏洞

0xx2 解析漏洞

2.1 什么是解析漏洞?攻击者利用上传漏洞时,通常会与web容器的额解析漏洞配合使用,常见的web容器为iis nginx Apache tomcat,下面具体说下常见容器的解析漏洞。

2.2 iis的解析漏洞。iis6.0在解析文件时存在二个解析漏洞。一 当建立.asa,.asp格式的文件夹时,其目录下的任意文件都将被iis当做asp文件解析,比如,当建立一个test.asp文件夹,里面放有1.txt,1.txt里面的内容为<%=NOW()%>,然后在浏览器中访问时,则会把1.txt当做正常的.asp文件解析(本来是不解析.txt文件的)。 如图:这样就可以上传webshell,来获取自己想要的内容。二 当文件为*.asp;1.jpg时,iis6.0同样会以为asp脚本来执行。

2.3 Apache解析漏洞。Apache解析漏洞存在于1.x和2.x版本,Apache的解析漏洞为当上传一个名为1.php.rar包时,应为Apache不识别*.rar包,所以Apache继续上上一级读,知道读取到apache是别的格式时,才停止。其中1.php.rar中是正常的php。即Apache在解析文件时的原则是:当遇到不认识的扩展名时,将会从后向前解析,知道遇到认识的扩展名为止,如果都不认识,则直接显示其源码

如图:

mime type 这里只展示一线部分了:

2.4 可以说是php cgi的解析漏洞,也可以说的是nginx的锅。@[email protected]。比如当在浏览器中输入www.ldxbbs.cn/1.jpg/1.php时如图:

注意:1.jpg是有php代码的图片,而/1.php是你在浏览器中输入www.ldxbbs.cn/1.jpg后随便添加的后缀名为php的。此时的1.jpg就会被当做php脚本解析的。这样,我们就可以上传有问题的图片,然后在url后面加上“/xxx.php”,就可以获得网站的webshell。《最终原因还是php解析时,遇到不存在的会继续向上解析。前提是cgi.fi:x_pathinfo开启》

0xx3 绕过上传漏洞

3.1 程序员在防止上传漏洞时,可以分为以下2种。

客户端检测:客户端使用JavaScript检测,在文件未上传时,就对文件进行验证。

服务器端验证:服务器端脚本一般会检测文件的mime类型,检测文件扩展名是否合法。

3.2 客户端检测,使用js对文件扩展名进行白名单验证,如果不是白名单的扩展名则不提交至服务器,代码如图:用php接受文件后,将文件重名名,然后放到本目录下。可以使用burpsite拦包 改名就能绕过前端验证。如图:

3.3 服务器端验证。 大体分为:白名单 黑名单 文件类型检测 文件重命名等操作。

黑名单过滤:即定义了一系列不安全的扩展名,服务器在接受文件后,与黑名单扩展名对比,如果发现一样的 则禁止上传 否 ok 代码如图:

绕过: 1 攻击者可以从黑名单中找到web开发人员忽略的扩展名 2 尝试大小写混用

白名单过滤:定义允许的上传的扩展名,当上传的文件扩展名和白名单的对应,则允许上传 否 不允许 代码如图:

绕过:和解析漏洞结合 具体问题具体解决,00*0阶段绕过 即通过burpsite抓包后,通过修改需要上传的文件的16进制的,比如上传的文件为1.php1.1.jpg 修改1.php1.1jpg的16进制代码 将.php1.中的第二个1的16进制改为0的16进制 即可

mime验证:mime类型用来设定某种扩展名文件的打开方式,当具有该扩展名的文件被访问时,浏览器就会自动使用指定的应用程序来打开。如GIF图片的mime为image/gif css的为mime text/css

大致代码如下:当然你上传个*.php文件 他的mime为application/php显然无法上传,用burpsite抓包之后修改content-Type的类型为服务器端设定的类型即可通过验证 如图:

目录验证:当文件上传时,通常允许用户将文件放到指定的目录中,如果指定的目录不存在 就新建 这样就出问题了,代码如图:

桡过:因为在html代码中有一个隐藏标签,这是文件上传时的默认路径,但是当我们吧value的值改为自己上传的一句话木马时,因为不存在 所以新建 所以目的达到了。即程序在接受到文件后,对目录判断,如果服务器不存在你的一句话木马的文件名 就会新建一个 然后把一句话写进去 如果web为iis6 则就会被解析,绕过暂时就不写了

0xx4 随后再补。。。。。。

时间: 2024-10-27 21:09:38

上传漏洞浅见的相关文章

文件上传漏洞的一些总结

MIME类型绕过: 上传木马时,提示格式错误.直接抓包修改Content-Type 为正确的格式尝试绕过 文件扩展名绕过: Php除了可以解析php后缀 还可以解析php2.php3,php4 后缀 文件内容检测绕过: 抓包,在正常图片末尾添加一句话木马 00截断绕过上传 1.php .jpg   空格二进制20改为00 IIS 6.0 目录路径检测解析绕过 上传路径改为 XXX/1.asp/ IIS6.0 解析缺陷漏洞绕过 上传路径出修改 XXX/1.php; Apache 解析缺陷绕过上传漏

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

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

owasp文件上传漏洞简析

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

dedecms后台文件任意上传漏洞

漏洞名称:dedecms后台文件任意上传漏洞 补丁文件:/dede/media_add.php 补丁来源:阿里云云盾自研 漏洞描述:dedecms早期版本后台存在大量的富文本编辑器,该控件提供了一些文件上传接口,同时dedecms对上传文件的后缀类型未进行严格的限制,这导致了黑客可以上传WEBSHELL,获取网站后台权限 解决方法 搜索代码 $fullfilename = $cfg_basedir.$filename; 如下图: 在上述代码前添加代码 if(preg_match('#\.(php

文件上传漏洞攻击与防御

前言 从一年前开始学习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

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

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

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

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