感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文4 U) V: v9 ~: T8 e+ R
" ~/ ?- e- m. d% G( F- F原帖:http://club.freebuf.com/?/question/129#reply12
+ l$ R! J) {( ^/ |
B, {6 \: T. \0 `0 ?2 x, Z4 WFCKEditor 2.6.8文件上传漏洞 N& i1 H6 l0 S" D
) Z+ Q4 ]4 z8 p7 N; DExploit-db上原文如下:
9 E: L( A1 `; W! M' ^, d( H9 @4 ?* E) F: W, q& J0 [ C
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass8 d6 m) R T/ V
- Credit goes to: Mostafa Azizi, Soroush Dalili
& J% T" V, e9 @% B5 W/ T6 t- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/ H/ W" y) o w5 Q. l& V
- Description:
A9 o x, a% @- JThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is
6 V% E5 _4 C' g9 }dealing with the duplicate files. As a result, it is possible to bypass# h' E: U4 b# e& T/ K
the protection and upload a file with any extension.
$ \4 p( p! D2 D `" D1 U* g- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/: ?- j2 o1 a" Z0 a+ c
- Solution: Please check the provided reference or the vendor website./ D J4 Q" P/ A9 C/ G, i- ^2 S8 ]
- g$ l E6 b" X! t- d0 ~- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720
/ r3 U& B0 x' }4 J* q5 a8 x) _6 Z"; u' W# o# @) `6 I
Note: Quick patch for FCKEditor 2.6.8 File Upload Bypass:+ F3 C& h- _+ @7 n, X
+ a- n7 S6 R9 H2 d; ]) ZIn “config.asp”, wherever you have:6 l2 d i# {* l, R/ r
ConfigAllowedExtensions.Add “File”,”Extensions Here”: B! ^. z/ P/ r
Change it to:- B# i: g9 _! v7 T& X* \/ N6 q
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:9 ` E- k( e+ K# y5 ?& w
9 d( W0 R" m. R4 \: [1.首先,aspx是禁止上传的# {, v) i- T) B" T- M3 F0 s A# {
2.使用%00截断(url decode),第一次上传文件名会被转成_符号" O& f' i& M" q+ L! T
, r" l' T& C: |
" R# f+ I' V! P" h8 t1 t. U
/ u- e h; b# c) B: T接下来,我们进行第二次上传时,奇迹就发生了. Y: X& F3 |8 _6 ]2 V3 R$ X4 l
% g+ b9 _7 G7 I* O! E! W1 d
9 ]/ S ^7 s# Z* }& M7 w6 h3 _) T( C( r, n* q1 Y( w
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html- P" T+ s, p4 j& m4 _# k# {. H
5 H$ v6 S2 h) {: h
% z( M/ I0 @8 p/ X7 L3 Y& b! {! S* p
* t P5 U) h8 G# s. f, }
CKFinder/FCKEditor DoS漏洞
% q1 U8 S" M+ L; T; O/ l" _% i2 \2 G% A: ]* q5 B4 C3 F/ x
相比上个上传bug,下面这个漏洞个人觉得更有意思
$ x3 y* a( i( M4 _# `& a
. v7 ~' s6 e' K. R8 u 4 x$ g5 o4 _8 b/ m
+ A) N, x+ v2 ~8 a6 o
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 - y8 J4 s( W2 ^8 ?# Y
7 k3 f" V S) b( g
CKFinder ASP版本是这样处理上传文件的:) J* f) h o6 C1 P g0 W+ c! I1 B
7 i2 d. Y0 p+ b当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
S, c. f6 w/ |( O* @: i
$ W. W2 [/ ^$ M' r i, [5 j2 j那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
) i) }! U+ S; \& V" Q4 K, W1 Y) l9 @/ r
dos方法也应运而生!- }) u' N( P, q. Q, |7 F
$ J! i4 A3 {% F. H/ i! l1 R
. Y( s7 I3 f {3 ~' U% }+ y! A8 g4 M+ s3 d" D
1.上传Con.pdf.txt
0 P* |9 q4 v+ T2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
* |6 q9 J- a" E7 K8 A; x, O* m* c8 f3 D
|