感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文% r4 G b+ @- q7 y+ j; n$ X
% }' e4 r8 M/ \9 l# n' m8 _( Z原帖:http://club.freebuf.com/?/question/129#reply12* G J) }! q6 q6 V5 u: v
1 M! l/ g/ \) q6 W0 u2 q4 G
FCKEditor 2.6.8文件上传漏洞( |. ?5 D! p. ] r7 {) N; }
4 z; W* g/ G, |0 k" ?5 I3 F! M" b1 EExploit-db上原文如下:
1 T" t% }/ B/ ?; M, v( @9 e# B
& j/ y+ ?8 @$ M- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
# _# q [9 `3 w0 S; b. o- h- Credit goes to: Mostafa Azizi, Soroush Dalili$ \6 {) y( k. j J, A" k
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
# e9 p, c' X+ V- Description:
# |: ^; f! ^( d$ J, Y$ h' {There is no validation on the extensions when FCKEditor 2.6.8 ASP version is" e, W$ U* p* Z" r/ w' `
dealing with the duplicate files. As a result, it is possible to bypass
: v3 Z; D# W5 d; p4 Uthe protection and upload a file with any extension.. B9 M7 K' Z, b) O
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/( E( I2 s' U5 N5 t8 ?
- Solution: Please check the provided reference or the vendor website.
* R# S" X$ U, g. K- y3 ?! I
* z. \" {& Q5 D; V1 e4 R, p, M- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720
3 |5 ?2 v+ u3 _' p) j+ k: p; e, w) H"
7 W9 {3 x+ ^. ?% @% nNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:0 u' R' X8 o( @+ d+ R$ z
( Q( e8 W$ {4 C3 B3 {9 wIn “config.asp”, wherever you have:; ^$ G( j2 F% \. J3 C6 w8 l% R
ConfigAllowedExtensions.Add “File”,”Extensions Here”7 T7 j( G1 H% \" y4 Z4 S
Change it to:
; ^. ]5 u& l: g8 \ ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:; w2 w+ Y; D5 l0 F
/ L3 l, ?- G& B2 |: C1.首先,aspx是禁止上传的
2 O6 ] y8 X% o7 [. X, ?7 V" }5 O2.使用%00截断(url decode),第一次上传文件名会被转成_符号
# D8 i6 ~, T8 V5 q o& Q& O/ l, H/ a C; W) D* D$ ^4 d
2 L) M+ F3 L& E. S8 `
6 U3 d5 M" a( H/ T5 `
接下来,我们进行第二次上传时,奇迹就发生了
0 {& K& _. `! h) H
( _- F+ G s7 r/ `8 w( B0 i( A! _
% S& F2 O4 G7 J
; p; A: O, j' v4 a( [代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html
6 R0 z& I; Q1 |/ R2 E* M; F, q! X! [7 {/ d# l# _# g0 ^ u' M
8 t5 L- r8 D2 N" P _" s/ R; G1 f: ^" z
CKFinder/FCKEditor DoS漏洞
6 @* A: n. D- E
4 d- r" t6 o/ P/ O! c9 D4 ^7 _9 d, P相比上个上传bug,下面这个漏洞个人觉得更有意思
/ K' D) [* f2 }2 D1 F( ^% \8 {7 j4 J$ J* E* O: U" B. w
2 o! C9 c4 D+ n2 d8 x9 e/ l; }7 J# n. U2 f4 F. ]
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 + u2 }- d8 y; L- o3 ]- |5 u
5 ?6 Q# }- i2 iCKFinder ASP版本是这样处理上传文件的:
9 L4 h& y: I& u/ A v& _/ L, l' ]( o4 A4 b
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。& n0 ?- _2 S4 h7 R; d
$ i# U: s7 W0 H" n8 t/ C8 y那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
/ T# f/ o' v8 b; x7 R- q4 n2 r
& D) u, L7 O- M7 m) fdos方法也应运而生!
( G% f' P" `- e- v" ~" T8 e$ Y3 R2 Z3 v/ C m$ J* Q5 I) v
# Y( o$ `+ J% m5 y( Z
' A; o8 G0 {' i9 r1.上传Con.pdf.txt
8 D/ T' b& i4 ]+ X/ V- m/ x2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。/ { S4 Z/ L6 w. ]+ l
6 v) b7 T9 o4 I8 S5 ]) Y Z5 \/ r
|