文件上传漏洞巨详讲

本文详细探讨了文件上传漏洞,包括解析漏洞、前端与后端校验的绕过方法,如Apache解析漏洞、Content-Type MIME类型绕过等。强调前端验证的不可靠性,提出后端校验的重要性,如白名单过滤、黑名单过滤和MIME类型检测。同时,文章还介绍了多种绕过策略,如文件扩展名大小写混合、Windows文件流特性等。
摘要由CSDN通过智能技术生成

前言:工欲善其事,必先利其器。(文章末尾有本篇涉及的所有工具以及安装教程)

文件上传漏洞概述

文件上传漏洞是一种常见的安全漏洞,攻击者通过上传恶意文件或者在上传文件的过程中执行恶意代码来获取系统权限或者对系统进行攻击。
造成文件上传的原因是程序没有对用户提交的数据进行严格过滤,可以直接提交修改过的数据绕过过滤。一旦造成文件上传漏洞,就可以在服务器上执行恶意代码,进行数据库执行,命令执行等恶意操作。根据网站使用以及解析的程序脚本不同,恶意脚本的类型可以分为PHP、ASP、JSP、ASPX等文件。

光看这个概述有点似懂非懂的感觉,下面我们就展开说说
首先必须说明一点,攻击者在利用文件上传漏洞时,往往会结合web容器的解析漏洞配合在一起。因此在开启文件上传漏洞的介绍时我们先介绍一下解析漏洞

解析漏洞

创建的web容器有很多,比如IIS、Nginx、Apache、Tomcat等等,下面以Apache容器为例子讲解。、
典型的有IIS 5.x/6.0 解析漏洞、Nginx解析漏洞、Apache解析漏洞
IIS 5.x/6.0 解析漏洞:
(1)当创建.asp的文件目录时,在此目录下的文件都会被解析为.asp文件。例如漏洞目录利用形式为www.xxx.com/xx.sap/xx.jpg的内容,可以为一段合法的sap脚本文件。
(2)服务器默认不解析“;”以后的内容,导致xx.asp;.jpg被解析成xx.asp。
ps:漏洞产生原因可看以下文章:https://www.cnbogs.com/11pe1/p/910094.HTML

Nginx解析漏洞:
当url中有不存在的文件时,PHP会默认向前解析。
因为PHP的配置中cgi.fix_pathinfo默认是开启的

Apache解析漏洞:

在Apache 1.x 和 Apache 2.x中都存在着解析漏洞,如下图,就是一个典型的Apache解析漏洞。
在这里插入图片描述
可以看出,url中的文件名为1.php.rar,正常情况下,应该会出现提示下载的弹框,但此时却没有,而是出现了phpinfo()探针的页面。
为什么吗?
其中1.php.rar的内容为

<?php
	phpinfo();
?>

问题的答案是Apache在解析文件时有一个原则,当碰到不认识的扩展名时,将会从后往前进行解析,直到遇见认识的扩展名为止,如果都不认识,就会讲该文件的源代码暴露出来。
比如:1.php.rar.xs.aa
这里Apache先会解析扩展名aa,不认识就往前解析xs,就这样一直从后往前解析,直到碰到认识的扩展名为止,然后将其解析。

绕过文件上传漏洞

在我们的日常生活中,使用的web程序一般都会涉及文件上传。比如上传QQ头像,上传作业、上传相册、上传附件等事件,而这些事件可能就存在着潜在的文件上传漏洞。

那么程序员怎么预防文件上传漏洞呢?
通常会把预防文件上传漏洞分为以下两种:

  • 前端验证:
    客户端使用JS(JavaScript)检测,在文件未上传时,就对文件进行验证(注意:前端验证是不可靠的)
  • 后端校验:服务端脚本一般会检测上传文件的MIME类型、扩展名是否合法,甚至有的程序员会检测上传文件中是否嵌入了恶意代码。
一句话木马(一句话后门)

我们总说在文件上传漏洞中上传恶意代码会造成一定的危害,那么这个恶意代码究竟是什么呢?下面我们就来揭开它神秘的面纱。

PHP: <?php  eval($_POST[‘RaM1ng’]);?>
ASP: <%eval request(“chopper”)%>
ASP.NET: <%@ Page Language = “Jacript”%><%eval(Request.Item[“chopper”],”unsafe”);%>

正因为代码短小精悍,所以被hacker成为一句话木马(一句话后门)

图片一句话则是将一句话木马插入到图片文件之中,而且并不会损坏图片文件,这一方法可以绕过少许的防火墙检测。

制作图片一句话木马的方法,可以查看制作的四种方法
https://www.cnblogs.com/1ink/p/15101706.html
另外在一些书籍上发现了一个专门制作图片马的软件——Edjpgcom
嫌麻烦可以去下载,但感觉没什么必要(bushi)
以文本的方式打开一个图片马,ctrl + F 搜索添加到该图片里的一句话木马就可以看到所添加的木马

注意:如果直接用文本方式打开一张正常的图片,在其中添加一句话木马可能会造成文件的损坏,所以不推荐。

绕过类型:

  • Content-Type绕过
  • 前端绕过
  • 文件解析规则绕过
  • Windows环境特性绕过
  • 文件名大小写绕过
  • 26
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值