5.文件上传漏洞的防御措施

6.文件上传漏洞的绕过


一、文件上传漏洞介绍

1.文件上传漏洞原理

文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者 WebShell等。“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服 务器的处理逻辑做的不够安全,则会导致严重的后果。

2.文件上传漏洞识别

有上传文件的功能,例如传头像、附件等且对上传的文件没有过滤

3. 攻击方式

上传木马文件等恶意脚本文件

4.文件上传漏洞的危害

文件上传属于高危漏洞,相比于SQL注入,XSS,风险更大,其危害的是整个应用系统,如果目标网站存在文件上传漏洞:
1,如果攻击者上传的是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,则会产生代码执行。
2,如果上传的是Flash的策略文件crossdomain.xml,攻击者则可以控制Flash在该域下的行为。
3,如果上传的是病毒,木马文件,攻击者则可以诱骗用户下载并执行恶意文件。
4,如果上传了一个Webshell到服务器上,那么整个应用服务器则可能被攻击者进行控制或致使系统完全崩溃。

5.文件上传漏洞的防御措施

文件上传漏洞防御:
系统运行时的防御:

  1. 文件上传的目录权限设置为不可执行。只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响。
  2. 文件扩展名使用白名单机制判断。在判断文件类型时,使用白名单方式,黑名单的方式已经无数次被证明是不可靠的。此外,对于图片的处理,可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码。
  3. 使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。再来就是像shell.php.rar.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击。
  4. 单独设置文件服务器的域名。由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传crossdomain.xml、上传包含Javascript的XSS利用等问题将得到解决。
  5. 使用安全设备防御。文件上传攻击的本质就是将恶意文件或者脚本上传到服务器,专业的安全设备防御此类漏洞主要是通过对漏洞的上传利用行为和恶意文件的上传过程进行检测。恶意文件千变万化,隐藏手法也不断推陈出新,对普通的系统管理员来说可以通过部署安全设备来帮助防御。

总结

大厂面试问深度,小厂面试问广度,如果有同学想进大厂深造一定要有一个方向精通的惊艳到面试官,还要平时遇到问题后思考一下问题的本质,找方法解决是一个方面,看到问题本质是另一个方面。还有大家一定要有目标,我在很久之前就想着以后一定要去大厂,然后默默努力,每天看一些大佬们的文章,总是觉得只有再学深入一点才有机会,所以才有恒心一直学下去。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

更多推荐