Security 执行通过公用文件夹中的文件上载上载的脚本

Security 执行通过公用文件夹中的文件上载上载的脚本,security,asp.net-mvc-4,iis,Security,Asp.net Mvc 4,Iis,我们必须修复系统中的一些安全漏洞,其中一项是:通过文件上载控制禁用已上载脚本/exe的执行 我们有excel上传设备。假设黑客将.exe更改为.xls并上传(有方法阻止它,但现在忽略它)。也假设 上载文件夹位于将网站安装在IIS中的pubilc目录中。或 有人可以通过黑客知道的某个api端点指定文件的完整路径来访问该文件 现在,考虑到黑客可以通过上述方式访问exe或脚本,黑客是否有可能以某种方式运行该脚本/exe,从而对网站所在的服务器造成伤害 我不是一个真正的安全专家,因此我想不出有什么办法可

我们必须修复系统中的一些安全漏洞,其中一项是:通过文件上载控制禁用已上载脚本/exe的执行

我们有excel上传设备。假设黑客将.exe更改为.xls并上传(有方法阻止它,但现在忽略它)。也假设

  • 上载文件夹位于将网站安装在IIS中的pubilc目录中。或
  • 有人可以通过黑客知道的某个api端点指定文件的完整路径来访问该文件
  • 现在,考虑到黑客可以通过上述方式访问exe或脚本,黑客是否有可能以某种方式运行该脚本/exe,从而对网站所在的服务器造成伤害


    我不是一个真正的安全专家,因此我想不出有什么办法可以做到这一点?黑客如何在没有任何服务器访问权限的情况下远程运行服务器上的exe/script。

    运行脚本需要远程访问服务器,可以直接访问,也可以利用网站代码中的某些错误(类似于SQL注入)。这里的风险主要在于托管恶意软件,特别是如果您允许其他用户下载用户上传的内容。虽然将恶意软件安装到计算机上并不像将可执行文件重命名为另一种文件类型那么简单(例如,它仍然必须作为可执行文件而不是Excel电子表格运行才能正常工作),但有可能将恶意软件嵌入各种类型的文件中,这样,打开该文件的行为会导致恶意软件的执行。从这个意义上说,你真的不能一眼就看出一个文件是否是恶意软件。它看起来像一个Excel文件,甚至可以在Excel中正确打开,但仍然会造成严重破坏。确保安全的唯一方法是使用良好的反恶意软件应用程序扫描所有用户上传的文件


    不过,就远程运行某些东西而言,运行脚本所需的服务器访问权限将为恶意破坏提供一个更好的途径,不管怎样,上传表单都是如此。因此,任何能够管理这种访问权限的人都不会试图通过您的上载表单利用您,任何在没有这种访问权限的情况下上载恶意内容的人都不会真正做任何事情。

    您绝对应该做的一件事是从运行脚本中删除IIS处理程序权限,否则任何人都可以上载恶意内容“.asp”或“.aspx”或任何其他脚本引擎文件,然后通过请求来执行它。一种简单的测试方法是使用“”创建一个“test.asp”文件,如果该文件返回日期,则任何人都可以上载脚本并在服务器中运行它们

    在IIS 7+中禁用该功能的方法是在父目录中添加一个配置文件并编辑处理程序的权限,例如,假设一个名为“public”的子文件夹,您可以删除以下web.config来禁用该功能:

    <configuration>
        <location path="public">
            <system.webServer>
                <handlers accessPolicy="Read" />
            </system.webServer>
        </location>
    </configuration>
    
    
    

    然后,您可以测试它是否不再执行该文件,而是阻止它。如果您希望允许下载这些文件,则需要配置静态文件处理程序(和请求筛选)要处理所有内容,但请确保仅对该文件夹执行此操作,因为您不希望别人下载您的源代码。

    谢谢您的建议。顺便说一句,如果我没有错,您所说的
    处理程序映射部分->脚本->执行
    权限不应设置…是的,这是正确的,上面是手ler映射,只需确保在编辑设置时,该设置不会首先保存在公用文件夹内的web.config中,否则,如果有写访问权限,其他人可能会对其进行更改。这就是为什么我建议使用位置路径,以便您可以将其保存在父文件夹中(非公用)文件夹,或者甚至可以放在ApplicationHost.config中,这样更安全,因为只有管理员才能使用正确的位置路径更改。非常好的建议和见解。非常感谢。了解了另一种提高安全性的方法非常感谢对该主题的深入了解。据我所知,(1)除非有一个exe代码(我们没有),否则任何人都无法远程执行exe。(2)黑客没有神奇的工具允许他们远程运行脚本(我从某人那里得到的答案是,黑客有很棒的工具,他们可以做任何事)(3)通过检查xls/xlsx的文件签名,我应该能够处理恶意软件黑客的“黑客”攻击“.这就是名字的来源。换句话说,他们发现并利用安全漏洞。我要说的不是你不能被黑客攻击,而是通过你的网站用户界面上传的恶意软件所需要的攻击类型,会给攻击者提供一个更好、更有效的载体,来危害你的系统,而不是实际使用网站用户界面上传文件。本质上,如果有人能够在您的服务器上运行可执行文件,您就被阻止了,不管是否上传表单。