首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件上传的安全风险-下载系统

文件上传的安全风险-下载系统
EN

Security用户
提问于 2017-01-23 05:40:21
回答 2查看 2.6K关注 0票数 4

我知道有很多关于这个话题的帖子。但这些帖子通常会谈到限制文件类型和大小等。因此,not满足我的需要,因为我的系统没有任何限制。

假设我们有一个web应用程序,它可以接受登录用户的上传。这些用户通过Active进行身份验证。不允许匿名用户。

用户可以将任何类型的文件上载到系统。然后用户可以预览通过我们的多用途查看器上传的文件。现在我们支持一些基本的文件类型,如图片,音乐,视频,pdf文件和办公室文件。我通过检查字典中的可查看类型来决定可查看类型,如果该类型不存在,则不会预览,而是直接下载。

我对我所面临的安全风险感到好奇,因此我将尝试详细说明我的系统。

在文件保存程序方面,我有两种不同的系统:

  1. 一个internet应用程序,其中的存储是一个结构化的文件系统,其中的文件名是用guid更改的。
  2. 内部网应用程序,存储是一个非结构化文件系统,当用户上传文件时,文件直接位于网络驱动器上,用户也可以通过网络驱动器访问这些文件。

对于这两个应用程序,预览策略是相同的。

所有文件都来自一个操作方法,该方法只能在身份验证时才能访问。并且允许对上传的文件进行逻辑路径遍历。

非office文件返回给客户端,并显示在imgvideoembed html标记中。

另一方面,Office文件首先通过Microsoft的互操作库执行,然后转换为pdf,然后返回到客户端,并再次显示为常规pdf。

我想知道,通过这些过程,我是否在服务器端危及安全?我知道用户可以上传恶意文件,但是在文件的写入或读取过程中,用户是否会对我的系统造成伤害?

EN

回答 2

Security用户

发布于 2017-01-23 13:33:42

通常,网络黑客的常规路径可以是一种快速总结的方式,比如:

  • 发现漏洞(扫描、指纹等)
  • 利用漏洞
  • 编写某种邪恶的有效载荷/外壳之类的
  • 访问/执行那些邪恶的东西
  • 对于这个问题来说,越来越不重要了。

在你的系统里,第三点是免费的!我不是说你会被黑。但是有了这样一个系统,如果前面的步骤都完成了,你就会让事情变得简单一些。

记住,只有一个弱点和一切都是可能的。当然,最危险的是直接的命令注入。如果没有出现ok,但可能在利用其他漏洞之后,可以在系统中启动某种命令,例如通过SQL注入。根据系统、数据库和版本,可以从数据库执行系统命令。

所以,提防一切!XSS注入,SQL注入,命令注入,CSRF,RFI等。

当然,检查所有组件(web服务器、内核、操作系统等)的版本。如果您使用一个已知漏洞的组件,即使在应用程序端进行了良好的开发,您也可能会被黑客攻击。

票数 1
EN

Security用户

发布于 2017-01-23 14:02:48

在服务器透视图中,您允许其他人在没有(大量)验证的情况下直接将内容放入文件系统。数据库存储比较安全,因为二进制数据不是直接可执行的。然而,使用操作系统的文件系统直接存储文件具有更好的性能。

如果文件存储在文件存储中,目标黑客可能是将巧尽心思构建的文件上载到服务器上,然后以某种方式触发服务器来处理它(无论是xml、zip、exe等)。

至少,您应该更改包含用户上载文件的文件夹的权限,使其不可执行。我将更进一步,以编程方式将所有文件扩展名替换为类似于.exe_.pdf_的文件扩展名。毕竟,您实际上不必以上传文件的方式存储文件,只需将数据显示在应用程序逻辑中即可。改变文件扩展名可能会破坏任何文件类型关联或自动触发机制。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/149154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档