文件上传漏洞详解
什么是文件上传
文件上传就是通过流的方式将文件写到服务器上。
文件上传必须以POST提交表单。
表单中需要 <input type="file" name="upload">
什么是文件上传漏洞
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,“文件上传” 本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。
文件上传漏洞的原理
文件上传漏洞是指用户上传了一个可执行的脚本文件(php、jsp、xml、cer等文件),而WEB系统没有进行检测或逻辑做的不够安全。
文件上传功能本身没有问题,问题在于上传后如何处理及解释文件。
一般情况下,Web应用都会允许用户上传一些文件,如头像、附件等信息,如果Web应用没有对用户上传的文件进行有效的检查过滤,那么恶意用户就会上传一句话木马等Webshell,从而达到控制Web网站的目的。
存在文件上传功能的地方都有可能存在文件上传漏洞,比如相册、头像上传,视频、照片分享。论坛发帖和邮箱等可以上传附件的地方也是上传漏阔的高危地带,另外像文件管理器这样的功能也有可能被攻击者所利用。
这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。
文件上传漏洞需满足的条件
首先,上传的文件能够被web容器解释执行。所以文件上传后所在的目录要是web容器所覆盖到的路径。
其次,用户能够从web访问这个文件。如果文件上传了,但用户无法通过web访问,或者无法得到web容器解释这个脚本,那么也不能称之为漏洞。 最后,用户上传的文件若被安全检查、格式化、图片压缩等功能改变了内容,则也可能导致攻击不成功。
文件上传漏洞产生的原因
一些web应用程序中允许上传图片,文本或者其他资源到指定的位置,文件上传漏洞就是利用这些可以上传的地方将恶意代码植入到服务器中,再通过 url 去 访问以执行代码.
造成文件上传漏洞的原因是:
1.服务器配置不当
2.开源编辑器上传漏洞
3.本地文件上传限制被绕过
4.过滤不严格被绕过
5.文件解析漏洞导致文件执行
6.文件路径截断
文件上传漏洞绕过
1.客服端绕过
(1)客户端校验:
一般都是在网页上写一段 javascript 脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式。判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包。
(2)绕过方法:
1.通过火狐插件 NOscript 插件或者禁用 IE 中 JS 脚本;
2.通过 firbug 插件元素审核修改代码(如删除 οnsubmit=”return checkFile()” 事件);
3.通过 firbug 元素审核 javascirpt 脚本中添加上传文件类型;
4.通过利用 burp 抓包改包,先上传一个 gif 类型的木马,然后通过 burp 将其改为asp/php/j

本文详细介绍了文件上传漏洞的概念、原理及防御措施。包括文件上传的基本流程、漏洞产生的条件与原因,以及多种绕过技巧和防御策略。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



