nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现

人不可能十全十美,十分能耐使七分,留下三分给儿孙。

俗话说得好

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第1张图片

e32264f07342c7e3bc04ab87d532dacb.png

FCKeditor_v2.4.3

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第2张图片

1、前言

常见的文本编辑器如FCKeditor、Ewebeditor、UEditor、KindEditor、XHeditor等,因其包含有文件上传接口,导致经常出现安全缺陷。

这里主要对 FCKeditor 编辑器的历史文件上传漏洞做复现。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第3张图片

2、FCKeditor常用上传地址

  • fckeditor/editor/filemanager/connectors/test.html

  • fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector

  • fckeditor/editor/filemanager/upload/test.html

  • fckeditor/editor/filemanager/browser/default/connectors/test.html

  • fckeditor/editor/filemanager/connectors/uploadtest.html

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第4张图片

3、漏洞复现

下载 FCKeditor_2.4.3 源码,用 phpstudy 搭建。

通过以下路径可查看编辑器的版本

① fckeditor/_whatsnew.html

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第5张图片

② fckeditor/editor/dialog/fck_about.html

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第6张图片

漏洞出现的页面

fckeditor/editor/filemanager/browser/default/connectors/test.html

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第7张图片

直接上传 PHP 一句话被拦截

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第8张图片

Burpsuite截包,在文件后缀名后面添加空格绕过后端限制。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第9张图片

上传成功

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第10张图片

点击 "Get Folders and Files" 得到上传文件的存储路径。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第11张图片

访问一句话脚本成功解析。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第12张图片

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第13张图片

4、源码分析

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第14张图片

这里使用 " seay 源码审计系统" 跟踪参数。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第15张图片

将函数定位到 command.php 文件。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第16张图片

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第17张图片

接下来再定位到 $Config 参数

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第18张图片

对参数进行全局搜索

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第19张图片

定位到 config.php 文件

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第20张图片

在 config.php 文件得知上传文件后缀名的黑名单。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第21张图片

以上的文件上传绕过姿势是采用 Windows 文件的命名规则,在后缀名后不能出现注入点,空格等特殊字符,使用 .php(空格)然过黑名单,当文件落地后 Windows 会自动将空格删除。

e32264f07342c7e3bc04ab87d532dacb.png

phpok_v4.8.338

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第22张图片

1、漏洞编号

CVE-2018-12491

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第23张图片

2、漏洞复现

安装系统的时候注意管理员的账密,这里是 admin/admin。

进行后台登录界面,可以得到网站的版本。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第24张图片

进入【工具】-->【附件分类管理】。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第25张图片

在第一行点击【编辑】。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第26张图片

添加一个 PHP 后缀,点击【提交】

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第27张图片

在左侧栏目【内容管理】 -- 【咨讯中心】

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第28张图片

点击【+】号添加文章。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第29张图片

可以上传 PHP 文件。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第30张图片

点击【预览】,查看文件上传目录。res/202010/02/7db5d12ece8242a3.php

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第31张图片

访问上传的一句话,成功解析。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第32张图片

e32264f07342c7e3bc04ab87d532dacb.png

phpok_v4.9.015

该版本的 phpok 存在任意文件上传和任意文件删除漏洞。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第33张图片

1、任意文件上传

进入后台能看到版本号。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第34张图片

进入【模块管理】--【导入模块】,发现需要导入 ZIP 文件。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第35张图片

将创建的一句话压缩成 zip 文件,上传,出现错误。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第36张图片

审计源码发现出现漏洞的文件在于framework\admin\module_control.php

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第37张图片

不管上传的文件能不能符合规格,将压缩包解压后直接保存在 data/cache 目录下。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第38张图片

访问一句话文件,解析成功。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第39张图片

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第40张图片

2、任意文件删除

访问【设置】--【风格管理】--【文件管理】

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第41张图片

随便点击删除一个文件,用 Burpsuite 截包。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第42张图片

将文件修改为 ../../index.php,发现删除成功

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第43张图片

访问网站首页发现 index.php 不可访问。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第44张图片

e32264f07342c7e3bc04ab87d532dacb.png

尾声

我是匠心,一个在清流旁默默磨剑的匠人,期待那一天能利刃出鞘,仗剑走江湖。

nginx 上传文件漏洞_FCKeditor/phpok文件上传漏洞复现_第45张图片

你可能感兴趣的:(nginx,上传文件漏洞)