感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
- G2 n+ _, m' o0 A
' q$ X+ A5 n% K% b/ W原帖:http://club.freebuf.com/?/question/129#reply12
% P8 |+ [' b! z1 ^( f: d& ?( N* K6 J* x6 q, o g/ u
FCKEditor 2.6.8文件上传漏洞
1 s1 s( t5 P9 {/ l2 g' x+ K! N* A) n7 n# R9 ?
Exploit-db上原文如下:$ Y9 P+ ~# {5 e, e8 n
& z" ~6 I! |8 w- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass9 K) \# G' Q7 V2 w' k- R+ Y4 @' @5 s) c' v
- Credit goes to: Mostafa Azizi, Soroush Dalili6 r% s4 ?2 q' h$ P% |9 }
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
# A [, [* j0 P0 S/ i- Description:
; `: ?' [$ f3 u$ D) Z! }There is no validation on the extensions when FCKEditor 2.6.8 ASP version is
4 J) ?( t/ X( F" L, L* odealing with the duplicate files. As a result, it is possible to bypass
" ^+ H" E' p: q, G5 m# r. rthe protection and upload a file with any extension.
% d4 C; C2 z$ d. v {( j- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/8 B3 c# r) G& m* B l9 @. K
- Solution: Please check the provided reference or the vendor website.4 c1 m+ Z/ t9 ~2 X8 F
$ j( b" {9 R; E f a T4 s
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720
/ A2 e; {; J2 M7 _"- m5 z5 j# G0 }. k5 g8 s
Note: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
' v+ H5 {* ?" g2 q9 H/ ^' ?$ Y4 @; k/ |+ f: j
In “config.asp”, wherever you have:
6 I6 @7 @9 }4 M: ] ConfigAllowedExtensions.Add “File”,”Extensions Here”- _- u6 F4 e! b3 n% |. x
Change it to:) ?) K/ _! }$ h" ?. A) F8 j
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:( n3 b8 F/ a9 U+ v' A: R+ l
: w- @% r3 f* z2 P! o% A$ q" b+ a( d
1.首先,aspx是禁止上传的' W: w% K& h; W3 J
2.使用%00截断(url decode),第一次上传文件名会被转成_符号
0 c. t! W. ?$ F) ]
7 Y' K, L4 {, b
- }/ e! Z) o1 L
7 d4 `$ v! b" [7 b接下来,我们进行第二次上传时,奇迹就发生了" E/ d! w' V" f7 J; n1 u X
1 G8 ^8 X4 n+ P% h% k! l
5 {, _0 h0 [ J' V3 v& h7 j- l$ Y$ _) q
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html
. R# J9 p3 Z+ x% [6 @& T4 K/ l9 I: v2 m3 O7 z
- n: L# _5 p( [% I
- } I% W9 W9 bCKFinder/FCKEditor DoS漏洞
$ c; v; `5 `; h- X
3 y$ ^( Q' f' ~ o+ f相比上个上传bug,下面这个漏洞个人觉得更有意思0 j/ D& i! M* r8 C$ O/ P C
$ D. ^' s2 j3 O" Y+ Y/ p1 O
l6 q' X; B# T+ j3 ]3 L1 Q3 F" B
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 0 e! h8 C" h4 d; f, L8 k! q( a: ^8 y
. }$ _6 V) \' L( U; Y$ B$ sCKFinder ASP版本是这样处理上传文件的:, F, D' P- R( a, d0 X% B
# c2 R, P$ d9 V* q+ f6 P3 ]% j
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。: c! C7 x; H& Y! p; ?
: w$ L; [) o! _
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
6 F+ P2 W: U- i5 T# G* M* S& J- Z4 `/ y+ |( {
dos方法也应运而生!
& m: V0 `# N1 S3 v {8 F0 D `- h! l2 W4 k2 v0 @
7 s- S9 w1 C7 `& G5 k# _! ?
/ A Y9 q1 v* Y; D: V) b1.上传Con.pdf.txt4 \( o' @% X! f, {) [3 x
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
. m; y) b! }, O! h6 z' z1 g! r4 x6 Q6 ~( A/ A$ U0 j
|