Web安全漏洞介绍及防御-文件上传漏洞

这篇具有很好参考价值的文章主要介绍了Web安全漏洞介绍及防御-文件上传漏洞。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🐳博客主页:举杯同庆 – 生命不息,折腾不止
🌐订阅专栏:『Web安全』
📰如觉得博主文章写的不错,或对你有所帮助的话,请多多支持呀! 👉关注✨、点赞👍、收藏📂、评论。

话题讨论中国经济周刊-2022-07-08 新闻 万豪国际集团证实了近期一起数据泄露事件,一个月前黑客进入了马里兰州一家万豪酒店的服务器,在获得约20GB数据后试图敲诈万豪,但万豪拒绝付款。被泄漏的数据包括客人的信用卡信息及客人和员工的机密信息
对此,网友们怎么看?可以留言讨论。

一 概述

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。常见场景是web服务器允许用户上传图片或者普通文本文件保存,而用户绕过上传机制上传恶意代码并执行从而控制服务器。

需要说明的是上传文件操作本身是没有问题的,问题在于文件上传到服务器后,服务器怎么处理和解释文件。

这种攻击方式是最为直接和有效的,如果服务器的处理逻辑做的不够安全,则会导致严重的后果。

二 文件上传后导致的常见安全问题

  1. 上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。
  2. 上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为
    (其他通过类似方式控制策略文件的情况类似);
  3. 上传文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。
  4. 上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。

要完成这个攻击,要满足以下几个条件:

  • 首先,上传的文件能够被Web容器解释执行。所以文件上传后所在的目录要是Web容器所覆盖到的路径。
  • 其次,用户能够从Web上访问这个文件。如果文件上传了,但用户无法通过Web访问,或者无法得到Web容器解释这个脚本,那么也不能称之为漏洞。
  • 最后,用户上传的文件若被安全检查、格式化、图片压缩等功能改变了内容,则也可能导致攻击不成功。

三 举两个例子

前面说过web安全攻防的测试靶场很多都是基于php服务器的,所以举例也是依.php文件为例,这个漏洞与开发语言无关。
文件上传漏洞防御方法,Web安全,安全,网络

1. nginx解析漏洞
漏洞原理:
Nginx默认是以CGI(服务器运行php文件的接口协议common gateway interface)的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME。当访问www.xx.com/info.jpg/test.php这个URL时,$fastcgi_script_name会被设置为“info.jpg/test.php”,然后构造成SCRIPT_FILENAME传递给PHP CGI,最终PHP会将info.jpg作为PHP文件解析,为什么呢?
这就要说到fix_pathinfo这个选项了,这是php配置文件中的一个关键选项,默认是开启的, 如果开启了这个选项,那么就会触发在PHP中的如下逻辑:
PHP会认为SCRIPT_FILENAME是info.jpg,而test.php是PATH_INFO,所以就会将info.jpg作为PHP文件来解析了
PHP官方给出的建议是将fix_pathinfo参数设置为0,对此bug态度消极。

漏洞文件形如:
www.xxxx.com/UploadFiles/image/1.jpg/1.php
www.xxxx.com/UploadFiles/image/1.jpg%00.php
www.xxxx.com/UploadFiles/image/1.jpg/%20\0.php

另外一种手法:上传一个名字为test.jpg,然后访问test.jpg/.php,在这个目录下就会生成一句话木马shell.php。
文件上传漏洞防御方法,Web安全,安全,网络

2. apache解析漏洞
漏洞原理
Apache2.x以前版本 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断,直到遇见一个Apache认识的文件类型为止。比如test.php.rar,这里”.rar” 这两种后缀是apache不可识别解析,apache就会把wooyun.php.rar解析成php,然后认为这是一个.php类型的文件。至于Apache都能识别哪些文件呢?这些文件类型定义在apache的mime.types配置文件中找到。

漏洞文件名形如   www.xxxx.xxx.com/test.php.php123

Apache的这个特性,很多工程师在写应用时并不知道,写出的安全检查就可能存在缺陷,比如.rar文件是一个合法的上传请求,在应用里值判断文件的后缀是否.rar,而用户上传的文件是xxxx.php.rar.rar,从而导致脚本执行。

3. 攻击测试步骤
这个场景非常巧妙,首先假设有个一句话木马文件,上传的时候可能会被和谐掉,所以要把此木马文件转换为图片马(比如cmd命令生成、二进制文本打开后加上木马命令等好几种方式都很简单),图片马是图片格式所以很容易上传成功。另外,需要攻击的服务器包含文件上传漏洞,这里用中国菜刀或者蚁剑(webshell管理工具)测试即可。

四 常见防御方法

1.文件上传目录设置为不可执行

只要web容器无法解析该目录下的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响。在实际应用中,很多大型网站或系统文件上传后会放在一个独立的存储服务器,做静态文件处理,一方面方便使用缓存加速,降低性能损耗,另一个方面也杜绝了脚本执行的可能。对于一些小应用,文件上传问题还是需要多加关注。

2.判断文件类型

在判断文件类型时,可以结合使用MIME Type、后缀检查等方式。通过javascript来校验上传文件的后缀是否合法,在浏览加载文件,但还未点击上传按钮时便弹出对话框,推荐采用白名单方法,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件。
注意:校验文件后缀时黑名单方法不是一种好的设计方法,容易被跳过。
此外

此外,对于图片的处理,可以使用压缩函数或者resize函数破坏图片中可能包含的HTML代码。

3.使用随机数改写文件名

文件上传如果要执行代码,则需要用户能够访问到这个文件。如果应用中使用随机数改写了文件名和路径,将极大的增加攻击的成本。同时,向上面的xxxx.php.rar.rar这种文件将会因文件名被改写而无法成功实施攻击。

4.单独设置文件服务器的域名

由于浏览器的同源策略,一系列客户端攻击将失效,比如上传包含JavaScript的XSS利用等问题将得到解决,但是能否单独设置域名,还要看具体的业务环境。

五 小结

文件上传往往与代码执行联系在一起,因此对于业务中用到的上传功能,都应该由安全工程师进行严格的检查。
文件上传问题看似简单,但是要实现一个安全的上传功能要考虑很多问题,不断的发现问题,结合业务需求改进,才能设计出最合理的上传功能。文章来源地址https://www.toymoban.com/news/detail-780887.html

到了这里,关于Web安全漏洞介绍及防御-文件上传漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web 安全之文件上传漏洞详解

    目录 文件上传漏洞的类型 文件上传的攻击方式 文件上传漏洞影响 防护措施 小结 文件上传漏洞是网络安全中的常见问题,通常发生在网站或应用程序允许用户上传文件到服务器的场景。这类漏洞如果被攻击者利用,可能导致数据泄露、非法文件分发、服务器入侵甚至整个系

    2024年02月04日
    浏览(40)
  • 23 WEB漏洞-文件上传之解析漏洞编辑器安全

    各个WEB编辑器安全讲解 https://navisec.it/编辑器漏洞手册/ 各个CMS文件上传简要讲解 wordpress,phpcms, 参考共享的中间件漏洞PDF IIS6/7简要说明-本地搭建 Apache配置安全–vulhub Apache解析漏洞-低版本 利用场景: 如果对方中间件apache属于低版本,我们可以利用文件上传,上传一个不识

    2024年02月11日
    浏览(51)
  • 《WEB安全漏洞30讲》(第5讲)任意文件上传漏洞

    文件上传漏洞,指攻击者利用程序缺陷绕过系统对文件的验证与处理策略将恶意程序上传到服务器并获得执行服务器端命令的能力。 这个漏洞其实非常简单,就是攻击者给服务器上传了恶意的木马程序,然后利用此木马程序执行操作系统命令,从而获得服务器权限,造成严重

    2024年02月12日
    浏览(44)
  • 小迪安全33WEB 攻防-通用漏洞&文件上传&中间件解析漏洞&编辑器安全

    # 知识点: 1 、中间件安全问题 2 、中间件文件上传解析 3 、 Web 应用编辑器上传 编辑器也就是第三方插件,一般都是文件上传漏洞 # 详细点: 1 、检测层面:前端,后端等 2 、检测内容:文件头,完整性,二次渲染等 3 、检测后缀:黑名单,白名单, MIME 检测等 4 、绕过技

    2024年03月16日
    浏览(60)
  • 一级必杀,防不胜防的漏洞,WEB安全基础入门—文件上传漏洞

    欢迎关注订阅专栏! WEB安全系列包括如下三个专栏: 《WEB安全基础-服务器端漏洞》 《WEB安全基础-客户端漏洞》 《WEB安全高级-综合利用》 知识点全面细致,逻辑清晰、结合实战,并配有大量练习靶场,让你读一篇、练一篇,掌握一篇,在学习路上事半功倍,少走弯路! 欢

    2024年01月18日
    浏览(40)
  • 33、WEB攻防——通用漏洞&文件上传&中间件解析漏洞&编辑器安全

    IIS爆过漏洞的版本:IIS6.0(windows server 2003)、IIS7.0和IIS7.5(windows server 2008) IIS6.0解析漏洞: 文件名:x.asp;x.jpg,jpg的文件后缀名,但是会被解析为asp文件; 目录名:x.asp/x.jpg, 文件目录名含有.asp后缀,x.jpg也会被解析为asp文件。 触发条件: IIS6.0这个中间件; 上传文件能不

    2024年01月24日
    浏览(81)
  • 常见的Web安全漏洞有哪些,Web安全漏洞常用测试方法介绍

    Web安全漏洞是指在Web应用程序中存在的可能被攻击者利用的漏洞,正确认识和了解这些漏洞对于Web应用程序的开发和测试至关重要。 一、常见的Web安全漏洞类型: 1、跨站脚本攻击(Cross-Site Scripting,XSS):攻击者通过向Web页面注入恶意脚本来执行恶意操作,例如窃取用户敏感信

    2024年02月11日
    浏览(56)
  • 24 WEB漏洞-文件上传之WAF绕过及安全修复

    safedog BT(宝塔) XXX云盾 宝塔过滤的比安全狗厉害一些,在真实情况下现在很多网站都是用宝塔 Content-Disposition: 表单数据,一般可更改 name:表单参数值,不能更改,改完之后,数据包是有问题的,跟前端的表单值会对不上,这样后端会无法判断你上传的地方,如果要更改,那

    2024年02月10日
    浏览(50)
  • 【网络安全 --- 任意文件上传漏洞靶场闯关 6-15关】任意文件上传漏洞靶场闯关,让你更深入了解文件上传漏洞以及绕过方式方法,思路技巧

      首先分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识 超详细的网络安全笔记 分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记​编辑https://m.tb.cn/h.5JdFcih?tk=OuVrWRl9vMx%20CZ3457 https://m.tb.cn/

    2024年02月07日
    浏览(48)
  • day33WEB 攻防-通用漏洞&;文件上传&;中间件解析漏洞&;编辑器安全

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新网络安全全套学习资料》

    2024年04月24日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包