感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
6 t/ z' b% \1 H) O1 k4 t3 F* W5 G- \* [6 l" W8 e1 M8 X4 X
原帖:http://club.freebuf.com/?/question/129#reply12
, x) ~8 B8 V/ g3 g6 a: f! u
8 F2 q. S0 v8 Y( nFCKEditor 2.6.8文件上传漏洞
8 R6 Q* U9 @5 A9 i; O8 l5 @" P6 Z4 @* s f: _% }: l# E
Exploit-db上原文如下:
; ~1 h1 `9 e& p# \0 I; o6 z% F6 w3 K9 ^1 p0 [5 {
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
# H, J" i$ p; x# M! c+ d$ B" q- Credit goes to: Mostafa Azizi, Soroush Dalili
* { h% |) x) s9 b% u+ }. C- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/9 j( m" {( O8 w6 c! [
- Description:+ E, m; w, P# C, f" r) C$ G% c; w
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is. ]3 `5 X6 p$ x
dealing with the duplicate files. As a result, it is possible to bypass
* F, X' A# b# A& G4 L/ W& jthe protection and upload a file with any extension.+ }6 W* z m1 I
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
; \. F J; B4 P- t# a4 c/ ]0 g- Solution: Please check the provided reference or the vendor website.
" D- j5 C+ z ~, e; Y) W. T |; \3 v0 c" b b/ Q9 e6 T# o! A8 K" Z2 }
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720) i! Z E; m0 D7 o d
"
! [' R2 q" l- W3 x5 a3 p% O& C0 B5 hNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
' F& z: w) g( o4 I# T' ]- A' h# C% m6 F! s. f" ^
In “config.asp”, wherever you have:
! U: l9 P* a" k7 |; I$ p ConfigAllowedExtensions.Add “File”,”Extensions Here”
* B( N/ z% I0 c) h: P$ ~& r# \Change it to:. h6 h+ g$ `) j+ r2 c) Z; d1 }7 p$ W: V
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:& ?/ a+ \ S; o5 \+ {! [# U+ |
9 }6 j" F3 u" A5 b0 y3 b9 ^- s1.首先,aspx是禁止上传的
; y! b9 @) o! h# ^2.使用%00截断(url decode),第一次上传文件名会被转成_符号
?! M: j0 q$ V) c; m& t* w4 O) t( B7 n6 y
- z4 G8 g% E2 z) `" `1 N
" M, G. A$ W3 O' W# m& Q
接下来,我们进行第二次上传时,奇迹就发生了
; J x) L8 J3 r1 B2 I, V5 E# G
1 y2 k1 }. B4 N$ [* ~4 h8 x
& q/ @& u% C/ A8 F, ?" q代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html: \1 n/ V) m) n9 X X4 n
2 ^% @# N3 l P- n5 e0 w" N
0 a, K. q9 G8 ]3 e Z7 g; m* K( A
2 [# j$ h5 T4 q& |) E! I" GCKFinder/FCKEditor DoS漏洞
# ?8 @0 ~& E1 t7 B3 z. s4 t0 W& `/ o" z+ P
相比上个上传bug,下面这个漏洞个人觉得更有意思
( `2 U7 q7 F2 ]1 Z' ^
) T; t0 y# }' O& [+ P " o/ z* w: H7 ^: _1 n
3 ^$ Y: a" W" v4 M- Z0 ZCKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 : c, |2 U) X' @, I
. Z( v& C* x4 eCKFinder ASP版本是这样处理上传文件的:
' ~) w5 d* _! P5 `
/ a1 e' ]; l( V i: o当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。0 \- _- V% }% `: Q9 W5 s! B
' U; p0 f# l) B' M$ @8 b3 x9 e
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下) h0 g, G0 t7 Y9 {) ~% X% u6 ^ K9 W
, D& I- }% B1 h8 q' ^+ f
dos方法也应运而生!
7 c! R- E7 h' R# |9 l* Q7 N8 G( Z: z7 v
7 C3 ~ e8 `3 r* l
+ ], z! U0 _1 ^$ H1.上传Con.pdf.txt
q, V7 Y# [5 P4 E9 f2 q9 u2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
3 {" ~. R" W; F) W3 C+ A! P
: `: w+ [ Y( u( H |