fck编辑器漏洞 freebuf
FCKeditor 有个文件上传漏洞,辑器叫 `FileUpload` 或者 `Connector` 的漏洞问题,具体路径在 `/editor/filemanager/connectors/` 下面。辑器这个洞在 2009 年前后被人翻来覆去地写,漏洞FreeBuf 上至少有三四篇分析,辑器但真正能用的漏洞利用链其实就那么一条。我去年在几个老站上还碰到过,辑器服务器跑着 IIS 6.0,漏洞FCKeditor 版本是辑器 2.6.4,上传点没删,漏洞直接传 `.asp` 木马拿 shell。辑器 问题出在 `connectors/asp/upload.asp` 这个文件里。漏洞它检查扩展名用的辑器是黑名单,只拦了 `asp`、漏洞`asa`、辑器`cer`、`cdx` 这几个。但 IIS 有个特性,`asp;.jpg` 这种分号截断的文件名,IIS 会当成 `.asp` 来解析。FCKeditor 的代码没处理分号,`Path.GetExtension` 拿到的是 `.jpg`,黑名单放行,文件落到磁盘上,IIS 一解析就执行了。 FreeBuf 上那篇《FCKeditor 分号截断上传漏洞》写得挺细,但作者没提一个细节:服务器得开 `AspEnableParentPaths` 或者至少允许 `;` 出现在文件名里。我实测过,Windows Server 2003 + IIS 6.0 默认配置就能打,2008 之后的 IIS 7.0 默认拒绝分号,这个洞就废了。所以现在还能中的站,基本都是老古董。 利用过程不复杂。先访问 `/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/asp/connector.asp`,确认 connector 还在。然后构造上传请求,`NewFile` 参数填 `shell.asp;.jpg`,文件内容就是一句话木马。返回的 JSON 里会给出文件路径,一般是 `/userfiles/image/shell.asp;.jpg`。用菜刀连这个路径,如果服务器没打补丁,直接就能执行。 有个坑要注意:FCKeditor 默认只允许上传到 `userfiles` 目录,而且这个目录通常有执行权限。如果管理员把 `userfiles` 设成只读,或者删了 `connectors` 目录,那就没戏。我见过一个站,connector 还在,但 `userfiles` 被重定向到静态资源服务器,上传成功但访问不到,白忙活。 修复方法也简单。升级到 CKEditor 4.x 以上,或者直接删掉 `editor` 目录。如果非要用,把 `connectors` 里的 `upload.asp` 改一下,扩展名检查用白名单,别用黑名单。再狠一点,把 `userfiles` 目录的执行权限关掉,只让静态文件访问。 FreeBuf 上还有人提过 `FCKeditor` 的 `php` 版本也有类似问题,但利用方式不同。PHP 那边是 `php` 文件里 `$_FILES` 处理不严,配合 `move_uploaded_file` 可以绕过。不过 PHP 版本的分号截断在 Linux 上没用,得用 `%00` 截断,但 PHP 5.3.4 之后 `%00` 也修了。所以现在能中的,基本都是 ASP 的老站。 我去年扫了大概两千个 IP,用 FOFA 搜 `FCKeditor` 特征,能访问到 `connector.asp` 的不到三十个,其中能成功上传的只有两个。一个跑在 Windows 2003 上,另一个是 Windows XP 改的服务器。这两个站都是政府下属的小网站,没人维护,估计现在还在那挂着。 说到底,FCKeditor 这个洞是时代产物。IIS 6.0 的分号解析特性加上黑名单检查,凑在一起才成立。现在新站基本不用 FCKeditor,老站要么关了要么升级了。但如果你手里有一批老资产,翻翻 `editor` 目录,说不定还能捡到漏。
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-