【Web安全】文件上传漏洞

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

目录

1. 文件上传漏洞概述

1.1 FCKEditor文件上传漏洞

1.2 绕过文件上传检查功能

2. 功能还是漏洞

2.1 Apache文件解析

2.2 IIS文件解析

2.3 PHP CGI路径解析

2.4 利用上传文件钓鱼

 3. 设计安全的文件上传功能


1. 文件上传漏洞概述

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。

应用:例如上传一张图片、分享一段视频、论坛发帖时附带附件、发邮件时附带附件……

文件上传后导致的安全问题一般有:

  • 上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行
  • 上传文件时Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为
  • 上传文件时病毒、木马文件,黑客诱骗用户下载执行
  • 上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈
  • 将上传文件作为一个入口,溢出服务器的后台处理程序,如图片解析模块
  • 上传一个合法的文本文件,其内容包含PHP脚本,再通过本地文件包含漏洞执行该脚本
  • ……

要实现webshell,要满足以下几个条件:

  1. 上传的文件能被Web容器解释执行,文件上传后的目录是Web容器所覆盖到的路径
  2. 用户能从Web上访问这个文件
  3. 文件不会被安全检查、格式化、图片压缩等功能改变内容而导致攻击不成功

1.1 FCKEditor文件上传漏洞

FCKEditor是一款非常流行的富文本编辑器,其上传文件的功能能将用户上传的文件保存在/UserFiles/all/目录下

在有漏洞的版本中,通过黑名单来确认文件的安全性

【Web安全】文件上传漏洞

以上述黑名单为例,当我们上传后缀为php2、php4、inc、pwml、asa、cer等文件时就能绕过

1.2 绕过文件上传检查功能

  • %00截断

在 C、PHP等语言的常用字符串处理函数中,0x00被认为是终止符,因此在文件名后添加一个%00字节,可以截断某些函数对文件名的判断

例如只允许上传JPG图片,可以构造文件名xxx.php[\0].JPG,其中[\0]为十六进制的0x00字符,.JPG绕过了应用的上传文件类型判断,但对于服务器端来说,此文件因为0x00字符截断,会变成xxx.php

  • 伪造文件头

有的应用会通过文件头验证文件类型

【Web安全】文件上传漏洞

 常见的攻击技巧是伪造一个合法的文件头,将真实的PHP等脚本代码附在文件头之后

【Web安全】文件上传漏洞

但仍需要通过PHP来解释此图片文件才行,若上传的文件后缀是JPG,则Web Server可能会将此文件当作静态文件解析,不会调用PHP解释器,也就无法进行攻击 

2. 功能还是漏洞

2.1 Apache文件解析

Apache对于文件名的解析是从后往前解析的,直至遇见一个Apache认识的文件类型为止

例如:

phpshell.php.rar.rar.rar.rar.rar

Apache不认识.rar文件类型,会一直遍历到.php,认为这是一个PHP类型的文件

黑客就可以利用该特性绕过对后缀名的限制,实现php脚本的执行

(在Apache的mime.types文件中定义了它所认识的文件)

2.2 IIS文件解析

  • 分号“;”是截断字符

当文件名为abc.asp;xx.jpg时,IIS 6 会将此文件解析为abc.asp,从而导致脚本被执行

  • 曾经出现过因处理文件夹扩展名出错,导致将/*.asp/目录下的所有文件都作为ASP文件进行解析
  • PUT方法允许用户上传文件到指定目录下,结合MOVE方法可以将原本只允许上传文本文件改写为脚本文件,从而执行webshell

2.3 PHP CGI路径解析

Nginx作为代理把请求转发给fastcgi Server,PHP在后端处理。(使用Nginx作为Web Server时,一般使用fastcgi的方式调用脚本解释器。)

当访问

http://www.xxx.com/path/test.jpg/notexist.php

时,会将test.jpg当作PHP解析。notexist.php是不存在的文件。

【Web安全】文件上传漏洞

如果在任何配置为 fastcgi的PHP应用里上传文件,其内容是PHP文件,则将导致代码执行。

原因:

PHP的配置文件中 cgi.fix_pathinfo=1默认开启

在上面的例子中,PATH_INFO=notexist.php,因为notexist.php不存在,会往前递归查询路径确认文件的合法性。此时SCRIPT_FILENAME检查文件是否存在,其值为/path/test.jpg,而此时PATH_INFO还是notexist.php,在最终执行时,test.jpg会被当作PHP解析。

2.4 利用上传文件钓鱼

利用文件上传功能,钓鱼者可以先将包含了HTML的文件(例如一张图片)上传到目标网站,然后通过传播这个文件的URL进行钓鱼,该URL中不会出现钓鱼地址。

【Web安全】文件上传漏洞

【Web安全】文件上传漏洞 png是伪造的文件头绕过上传时的文件类型检查,后面的脚本控制浏览器跳向指定的钓鱼网站,骗子在传播钓鱼网站时,只需要传播合法图片的URL

 【Web安全】文件上传漏洞文章来源地址https://www.toymoban.com/news/detail-483208.html

 3. 设计安全的文件上传功能

  • 文件上传的目录设置为不可执行
  • 判断文件类型时可以结合MIME Type、后缀检查等方式,使用白名单
  • 对于图片的处理使用压缩函数或resize函数,在处理图片的同时破坏其中可能包含的HTML代码
  • 使用随机数改写文件名和文件路径
  • 单独设置文件服务器的域名

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

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

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

相关文章

  • 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)
  • 049-WEB攻防-文件上传&存储安全&OSS对象&分站&解析安全&解码还原&目录执行

    1、文件上传-安全解析方案-目录权限解码还原 2、文件上传-安全存储方案-分站存储OSS对象 演示案例: ➢文件-解析方案-执行权限解码还原 ➢文件-存储方案-分站存储OSS对象 ➢实例-解析存储-传输分站OSS存储 将源码复制到对应目录下,并创建image.wusuowei.com文件夹,存储源码

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

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

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

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

    2024年02月10日
    浏览(50)
  • 一级必杀,防不胜防的漏洞,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)
  • day33WEB 攻防-通用漏洞&;文件上传&;中间件解析漏洞&;编辑器安全

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

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

    2、解析漏洞-nginx.conf 配置不当 二,Web 应用编辑器-Ueditor 文件上传安全 三,实例 CMS平台-中间件解析编辑器引用 配套资源下载(百度网盘): 链接:https://pan.baidu.com/s/11Q9sAPQ9P_ReOP9PKL0ABg?pwd=jgg4  提取码:jgg4 本章节知识点: 1 、中间件安全问题 2 、中间件文件上传解析 3 、

    2024年04月15日
    浏览(89)
  • web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

    制作图片马有两种方法,一种是文本方式打开,末尾粘贴一句话木马,令一种是使用命令进行合成。 方法1 首先准备好一个图片(这里是1.png)。 将一个图片以文本格式打开(这里用的Notepad++,以记事本方式打开修改也能连接成功,不过修改后图片无法正常显示了)。 后面粘

    2024年02月06日
    浏览(56)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包