文件上传漏洞及解决方法

admin 2021年10月30日00:11:50评论123 views字数 1003阅读3分20秒阅读模式
文件上传漏洞指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力

文件上传后常见的安全问题:
1.上传的文件是web脚本语言,服务器的web容器解释并执行了用户上传的脚本 导致代码执行
2.上传文件是flash的策略文件 crossdomain.xml,黑客用以控制Flash在该域下的行为
3.上传文件是病毒,病毒文件,黑客用以诱骗用户或者管理员下载执行
4.上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈

在大多数情况下,文件上传漏洞一般都指"上传Web脚本能够被服务器解析"的问题,也是通常所说的webshell的问题,要完成这个攻击,要满足如下几个条件:
1.上传的文件能够被web容器解释执行,所以文件上传后所在目录要是web容器所覆盖到的路径
2.用户能够从web上访问这个文件。如果文件上传了,但用户无法通过web访问或者无法使得web容器解释这个脚本,那也不能称为漏洞
3.用户上传的文件若被安全检查,格式化,图片压缩等功能改变了内容,则也会导致攻击不成功


设计安全的文件上传功能

1.文件上传的目录设置为不可执行
只要WEB容器无法解析该目录下的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响,在实际应用中,很大大型网站的上传应用,文件上传后会放到独立的存储上做静态文件处理,一方面方便使用缓存加速,降低性能损耗,另一方面也杜绝了脚本执行的可能

2.判断文件类型
判断文件类型的时候的时候,可以结合使用MIME Type,后缀检查方式,文件类型检查中,推荐使用白名单方式,黑名单不可靠,对于图片的处理,可以使用压缩文件或者resize函数,在处理图片的同时破坏图片中包含的HTML代码

3.使用随机数改写文件名和文件路径
文件如果要执行代码,则需要用户能够访问到这个文件,如果应用使用随机数改写文件名和路径,将极大的增加攻击的成本,与此同时,像shell.php.rar.rar 这种文件,或者是crossdomain.xml这种文件,都将因为文件名被改写而无法成功实施

4.单独设置文件服务器的域名
由于浏览器同源策略的关系,一系列服务器攻击将失效

原文链接:https://blog.csdn.net/qq_24381917/article/details/106176488


推荐↓↓↓

原文始发于微信公众号(系统安全运维):文件上传漏洞及解决方法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年10月30日00:11:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   文件上传漏洞及解决方法http://cn-sec.com/archives/604959.html

发表评论

匿名网友 填写信息