游乐游手机版
首页/网络安全/文章详情

从FCKEditor看文件上传漏洞原理

时间:2026-07-25 06:27
文件上传漏洞:从原理到实战,一文讲透 文件上传漏洞,本质上是指服务器允许用户上传任意类型的文件,攻击者借此植入恶意脚本或危险内容,进而在服务器端执行。这一机制看似简单,但其背后的原理和各种绕过技巧,值得深入剖析。本文将从多个常见的安全问题入手,带你全面了解文件上传漏洞。 文件上传后容易引发的安全问题

文件上传漏洞:从原理到实战,一文讲透

文件上传漏洞,本质上是指服务器允许用户上传任意类型的文件,攻击者借此植入恶意脚本或危险内容,进而在服务器端执行。这一机制看似简单,但其背后的原理和各种绕过技巧,值得深入剖析。本文将从多个常见的安全问题入手,带你全面了解文件上传漏洞。

文件上传后容易引发的安全问题,通常包括以下几种:

  • 上传的是Web脚本语言文件,例如PHP、ASP,服务器端的Web容器直接解释执行,导致远程代码执行。
  • 上传的是Flash策略文件crossdomain.xml,攻击者借此控制Flash在该域名下的行为(其他类似通过策略文件控制的方式同理)。
  • 上传的是病毒、木马文件,用来诱骗用户或管理员下载执行。
  • 上传的是钓鱼图片,或者包含脚本的图片,在某些浏览器版本中会被当作脚本执行,用于钓鱼欺诈。

除了这些,还有一些不常见的利用方式,比如把上传文件当作入口,溢出服务器后台处理程序(如图片解析模块);或者上传一个普通文本文件,里面藏了PHP脚本,再通过“本地文件包含漏洞”来执行它,等等。

要完成这类攻击,需要满足几个条件:

  • 上传的文件能被Web容器解释执行。也就是说,文件上传后的目录必须在Web容器覆盖的路径下。
  • 用户能从Web上访问到这个文件。如果文件上传了但用户无法通过Web访问,或者Web容器根本不解释这个脚本,那就算不上漏洞。
  • 用户上传的文件如果被安全检查、格式化、图片压缩等功能改变了内容,攻击也可能不成功。

一、从FCKEditor文件上传漏洞谈起

FCKEditor是一款非常流行的富文本编辑器,为了方便用户,它自带文件上传功能。然而,正是这个功能,曾经出现过不少安全漏洞。

FCKEditor针对ASP/PHP/JSP等环境都有对应版本。以PHP为例,其文件上传功能通常会配合解析漏洞一起使用。

(一) IIS 5.x-6.x 解析漏洞

使用IIS 5.x-6.x版本的服务器,多半是Windows Server 2003,网站比较老旧,开发语言通常为ASP。这个解析漏洞只能解析ASP文件,不能解析ASPX文件。

  • 目录解析(6.0)
    形式:www.xxx.com/xx.asp/xx.jpg
    原理:服务器默认会把.asp目录下的文件都解析成ASP文件。
  • 文件解析
    形式:www.xxx.com/xx.asp;.jpg
    原理:服务器默认不解析分号后面的内容,所以xx.asp;.jpg就被解析成了ASP文件。
  • 解析文件类型
    IIS 6.0默认的可执行文件除了ASP,还包含.asa.cer.cdx这三种。

(二) Apache 解析漏洞

Apache解析文件的规则是从右到左判断。如果后缀名不可识别,就继续往左判断。例如test.php.qwe.asd,其中.qwe.asd是Apache不可识别的后缀,那么Apache就会把整个文件解析成PHP。

漏洞形式:www.xxxx.xxx.com/test.php.php123

还有一些配置问题也会导致漏洞:

  • 如果在Apache的conf里有这样一行配置:AddHandler php5-script .php,那么只要文件名包含.php,即使文件名是test2.php.jpg,也会以PHP方式执行。
  • 如果配置了AddType application/x-httpd-php .jpg,即使扩展名是.jpg,同样能以PHP执行。

修复方案:在Apache配置文件中禁止.php.这类文件执行;或者用伪静态重写类似.php.*的文件,打开httpd.conf找到LoadModule rewrite_module modules/mod_rewrite.so,去掉注释,重启Apache,再在网站根目录下建立.htaccess文件。

(三) Nginx 解析漏洞

Nginx默认以CGI方式支持PHP解析,通常做法是在配置文件中通过正则匹配设置SCRIPT_FILENAME。当访问www.xx.com/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为phpinfo.jpg/1.php,然后构造成SCRIPT_FILENAME传递给PHP CGI。那为什么PHP会接受这样的参数,并把phpinfo.jpg当作PHP文件解析呢?关键在于fix_pathinfo这个选项。如果开启了它,PHP就会认为SCRIPT_FILENAMEphpinfo.jpg,而1.phpPATH_INFO,于是就把phpinfo.jpg当作PHP文件来解析。

漏洞形式:

  • 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

(四) IIS 7.5 解析漏洞

IIS 7.5的漏洞与Nginx类似,都是因为PHP配置中开启了cgi.fix_pathinfo,这并非Nginx或IIS 7.5本身的漏洞。

5. 配合操作系统文件命名规则

上传不符合Windows文件命名规则的文件名,比如:

  • test.asp.
  • test.asp(空格)
  • test.php:1.jpg
  • test.php::$DATA

这些会被Windows系统自动去掉不符合规则符号后面的内容。具体操作可以参考下图:

解析文件上传漏洞 从FCKEditor文件上传漏洞谈起

点击Create Folder新建文件夹。

解析文件上传漏洞 从FCKEditor文件上传漏洞谈起

用Burp Suite改包,将%2F改为a.asp

解析文件上传漏洞 从FCKEditor文件上传漏洞谈起

点击Get Folders获得文件夹。

解析文件上传漏洞 从FCKEditor文件上传漏洞谈起

上传文件(比如一句话图片木马),然后能看到上传路径,访问1.asp/FI201610191827336199.jpg会被当作ASP执行,用菜刀连接即可getshell。

解析文件上传漏洞 从FCKEditor文件上传漏洞谈起

二、绕过文件上传检查功能

绕过上传检查,最常见的手段是通过文件名后缀检查。但有时候,攻击者手动修改上传过程中的POST包,在文件名后添加一个%00字节,就能截断某些函数对文件名的判断。因为在C、PHP等语言的常用字符串处理函数中,0x00被认为是终止符。受此影响的环境包括Web应用和一些服务器。比如应用原本只允许上传JPG图片,那么可以构造文件名为xxx.php[\0].JPG(其中[\0]是十六进制的0x00字符),.JPG绕过了应用的上传类型判断,但服务器因为0x00截断,最终却变成了xxx.php

1. 客户端校验

一般是在网页上用JavaScript脚本校验上传文件的后缀名,有白名单也有黑名单。判断方式:在浏览器加载文件后,还没点击上传按钮就弹出对话框,内容比如“只允许上传.jpg/.jpeg/.png后缀名的文件”,而此时并没有发送数据包。

解析文件上传漏洞 从FCKEditor文件上传漏洞谈起

来源:https://www.jb51.net/hack/506957.html
上一篇网络安全学习入门方法与路线 下一篇宝塔面板phpmyadmin未授权访问漏洞IP:888/pma问题分析
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
零基础Python网络安全学习指南,包住宿实战培训
网络安全 · 2026-07-25

零基础Python网络安全学习指南,包住宿实战培训

先抛出几个核心判断:网络安全人才缺口确实已经超过70万。这个数字不算夸张,各大招聘网站上安全岗位的薪资涨幅和需求增长都是实实在在的。但实话实说,行业真正缺的是能上手干活的人,不是只懂几个理论概念的新手。因此,一套扎实且成体系的训练方案,对于零基础转行或进阶提升就显得格外关键。 从零基础到能够独立应对

网络安全定义与核心概念详解
网络安全 · 2026-07-25

网络安全定义与核心概念详解

谈到网络安全,不同组织与标准体系对其定义虽有差异,但核心目标高度统一:保护信息与系统不受威胁侵害。以下梳理几种主流定义—— 什么是网络安全? 国际标准化组织(ISO)在ISO-74982文献中将安全定义为:最大程度地降低数据和资源遭受攻击的可能性。该定义虽简短,却精准点出安全的本质——即风险控制。

IIS 7.0网站漏洞利用与修复方法指南
网络安全 · 2026-07-25

IIS 7.0网站漏洞利用与修复方法指南

先来聊聊当前网络安全领域比较流行的一种实战技巧——以PHP环境为例,详细讲解图片马合并与解析漏洞利用的具体操作步骤。整个过程并不复杂,但细节往往决定成败,大家跟着流程逐步操作即可。 合并一张PHP一句话图片马 首先,我们需要将一句话木马脚本与一张正常图片合并,生成一个看似无害的图片文件。合并方式主要

织梦管理系统后台查找功能教程
网络安全 · 2026-07-25

织梦管理系统后台查找功能教程

通过SQL注入漏洞获取织梦CMS(DedeCMS)管理员密码后,满怀期待地准备进入后台,却发现怎么也找不到登录入口——这种情况其实相当常见。别着急,这里有一个实用的技巧值得尝试。 直接在网站地址后面添加以下路径: include dialog select_media php?f=form1 mur

微软IE浏览器BrowseDialog类(ccrpbds6.dll)拒绝服务安全漏洞深度分析
网络安全 · 2026-07-25

微软IE浏览器BrowseDialog类(ccrpbds6.dll)拒绝服务安全漏洞深度分析

BrowseDialog Class (ccrpbds6 dll) 导致 Internet Explorer 拒绝服务漏洞分析 该漏洞的PoC(概念验证代码)实现极为直接——触发浏览器崩溃的条件简单得令人意外。测试环境采用Windows XP Professional SP2(已安装全部补丁)并运行