感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
* D7 [9 ^. T( T7 `6 {6 m m4 |+ A/ ?6 Z7 r8 \' v5 F& l
原帖:http://club.freebuf.com/?/question/129#reply124 j) G0 d# }5 _+ B @5 }
1 B5 N6 f0 S) D6 R! O9 yFCKEditor 2.6.8文件上传漏洞. B/ @6 {9 m) c" {* l
1 e# j4 C1 `9 B3 C6 R5 R* |Exploit-db上原文如下:
. V( V& c$ @! L o4 H# N B ~ v( q& C
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
2 h+ ]% {2 s4 B" o' \- Credit goes to: Mostafa Azizi, Soroush Dalili
8 }0 e6 q$ C; n" j1 f, I3 R- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
/ {6 V; d4 A. D& [. n- Description:
, x+ ?; q% H8 r1 HThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is
9 }: [$ ?# y& r6 b) ~/ F$ N, Ydealing with the duplicate files. As a result, it is possible to bypass
' t1 j8 Z3 C( y% qthe protection and upload a file with any extension.5 \6 `) B! e. Q/ `: M! q
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
. F/ D9 _" o# V5 m; O- Solution: Please check the provided reference or the vendor website.$ {. p: r/ F# d V, q5 }) @
' K8 f# v, c) b, k" Y. u
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720. ~6 k4 Q( w) C9 r+ B
"/ f% A, E- A' B6 I- Z
Note: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
, |4 I: i% T* ~
; U6 X0 N2 D1 q* c+ v% tIn “config.asp”, wherever you have:. Q+ M4 I: q# Z
ConfigAllowedExtensions.Add “File”,”Extensions Here”& Z% |2 z, c& g5 w3 m. g& g0 D4 W+ K* O
Change it to:
) B5 Q, h: x- { ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:$ N+ E6 U- s* ?# Z M4 q
; A: [; q- H3 ^( W/ ^7 U
1.首先,aspx是禁止上传的/ e6 D) j1 }' y. j+ f
2.使用%00截断(url decode),第一次上传文件名会被转成_符号4 A4 @' j3 Q% P8 i: S( A
! ?9 v1 s: z( W7 ]$ n8 S( _: }( Z7 \: Y
1 j+ {2 o; D- S& j
接下来,我们进行第二次上传时,奇迹就发生了
: T# \) f- \+ }+ O) R ? ?) ~4 U
/ s) V4 [+ ^0 H9 K7 }
. |7 P5 m e1 g' D9 Q+ {# W1 T2 S* |! w
/ ~4 \9 n W0 S# {1 g! P" [代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html% l; y2 p! v6 K# C
6 B5 t2 |' c: z$ n9 e
* H3 l1 G# R, b! u
6 O4 \9 ?: x% K
CKFinder/FCKEditor DoS漏洞; `* M& I7 }# E( e
P9 d4 L, |. f/ k
相比上个上传bug,下面这个漏洞个人觉得更有意思, A" n$ k0 J5 o
6 K! c* _' e+ |" k8 u9 }( P
" d. [. D7 ?, H9 E, ~% J6 O1 |- g
# T. S$ y, n! v- j( { b
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
$ U8 Z( t. n R" C
! m* M2 t5 `4 X: B" XCKFinder ASP版本是这样处理上传文件的:
7 L* m5 f" o7 B& F$ B Z5 N9 x. ]
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。, L3 h& ]3 K$ w6 M9 d' d5 _
3 T; v8 o) r: H2 b& Y/ z$ @2 J0 Y那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)5 ^5 h( R+ g( W* A+ T" a( |
: g j; O0 f9 K; l/ E2 h0 pdos方法也应运而生!, v; Y% A; S9 ~
* V2 [' c9 T& U0 o( A
. `0 `# L; w8 k0 z# G4 ^
/ ^" z1 w) p7 K( K* z2 [
1.上传Con.pdf.txt1 n! \4 u1 a- G' s; S+ ?. \
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。2 a0 B7 }/ u4 U0 \. V! `$ e
6 l4 f( f: E5 a ?' J
|