首页 > 编程知识 正文

文件上传漏洞解决方案,利用文件上传漏洞步骤

时间:2023-05-06 20:52:47 阅读:21679 作者:2341

文章目录文件上传目录设置为不可执行的权限确定文件类型(白名单)随机数、使用时间戳重写文件名、文件路径个性化文件服务器的域名摘要

在上次的文件上传漏洞文章中,他说“文件上传”功能本身没有问题,但知识在特定条件下会被网络攻击者使用,成为漏洞。 那么,“文件上传”功能如何设计才能更安全呢?

根据将文件上传目录设置为不可执行权限的攻击手段,除非WEB容器能够分析该目录下的文件,否则即使网络攻击者上传了脚本文件,服务器本身也不会受到任何影响。 在实际的web APP应用程序中,特别是大型web APP应用程序的上传功能在文件上传后位于独立的存储空间中,进行静态文件处理,如站库分离。 另一方面,这是为了方便高速缓存的高速化,降低服务器的性能损失。 另一方面,脚本执行的可能性也为零了。

如果上载的文件不在独立的存储空间中,并且您有权无法运行上载目录,则可以使用一些旁路方法运行get shell。 有关详细的绕过方法,请参阅上一篇文章中的“绕过上载目录权限”。

另一种情况是,对于大型网络APP应用的某些角落的小APP应用,如果有上传文件的功能,还需要引起更多的关注。

在确定文件类型(白名单)之前的文章中,我们介绍了如何绕过黑名单和白名单进行使用。 其中黑名单方式已经无数次被证实其可靠性。 这里强烈推荐白名单方式。

在判断文件类型时,可以组合MIME Type、后缀检查、文件内容检查等方式。 在图像匹配的处理中,可以在使用压缩函数和risize函数处理图像的同时,破坏图像中可能包括的HTML代码。

用随机数、时间戳改写并上传文件名和文件路径脚本文件后,必须能够访问此文件才能运行代码。

在特定环境中,用户可以上传,但不能访问。 如果网络APP应用程序使用随机数重写文件名和路径,则会增加网络攻击者的攻击成本。

同时,脚本文件(如shell.PHP.rar.AAA )或文件(如crossdomain.xml )由于豆浆重写了文件名,攻击者无法成功实施攻击。

单独设置文件服务器域名可以有效解决一系列基于客户端的攻击,包括上载crossdomain.xml和使用包含JavaScript的XSS,这是由于浏览器的同源策略。 但是,能否这样设置,必须基于实际的业务实现场景来决定。

文件上传问题虽然简单,但很难实现安全的上传功能。 考虑到病毒、木马、色情图像、截图、反动政治文件、害怕暴力等与具体业务挂钩的问题,还需要做更多有针对性的工作。

只有不断发现问题,根据实际业务需要解决问题,才能设计出符合APP应用的最安全合理的文件上传功能。

由于总结文件的上传往往与代码执行密切相关,因此安全工程师、渗透测试工程师必须严格检查在web APP应用的所有场景业务中使用的上传功能。 另外,由于文件上传可能存在钓鱼、木马、病毒等危害产品用户的业务风险问题,文件上传功能需要考虑的问题越来越多。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。