感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
# ^% U% h' h( p6 `) o
2 |# v5 g- W2 |$ y" n3 N# g; n原帖:http://club.freebuf.com/?/question/129#reply120 Q+ `( Q% h; `# d3 G! a
' R6 Z1 `! P9 H; Q! t" {2 `FCKEditor 2.6.8文件上传漏洞
( G Q4 c* u4 `6 F0 ]; h) }
$ L8 [4 l% m2 ] Z4 P# Y, UExploit-db上原文如下:
& A4 f; E0 {+ }: t$ z+ R: h7 e( d
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass0 Q% s) K3 }3 | n1 j
- Credit goes to: Mostafa Azizi, Soroush Dalili
$ y' N1 L a. P, ?; k p- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
# e6 {1 _" R5 `0 }0 h5 ~- Description:3 p+ [/ t' q$ E: X0 b3 U: ~, b
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is8 t9 {6 f. F9 q" t- O
dealing with the duplicate files. As a result, it is possible to bypass
2 h$ N6 @( ?: D& v, j) vthe protection and upload a file with any extension.
; F. v% I* j7 u, D! v* U! N9 E- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/$ ]$ i. b; P. T2 S7 e) ~
- Solution: Please check the provided reference or the vendor website.2 n2 E. P' n, y7 \
; [% V1 |. ^6 a: j( t- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720# D4 k5 P O% w" Y: U
"
) E6 ] {2 @1 H/ t* bNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:6 E2 L7 b- |) G) f$ O! J
% Y, }1 |2 {' z' x
In “config.asp”, wherever you have:
& a$ ?/ f# J2 h& n I# e ConfigAllowedExtensions.Add “File”,”Extensions Here”( K C: z* C# ~& ^, o+ Z& w* g
Change it to:
7 Q" f, }6 J) S o) n ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:$ h- V; @8 x9 {/ ?# T
+ A2 y/ \6 E8 J( B5 @0 G2 a$ ?1.首先,aspx是禁止上传的
4 n6 b' F! y* ^- X( f0 e( s! a5 g7 G2.使用%00截断(url decode),第一次上传文件名会被转成_符号) h3 C: G( v( n8 P" I
( m! z0 Z5 u5 B0 p7 C/ {8 D
1 {9 U7 D8 }. g
& K7 |3 X g8 N, l' v7 M/ z8 M接下来,我们进行第二次上传时,奇迹就发生了
; B/ [$ f6 ?9 y- o
% P3 V" x* ?2 d& P8 ~$ U
; k3 s3 z5 J {/ x7 |" [! F$ _9 ?( N4 h1 T$ [
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html
/ l- H$ j0 y9 e
1 D* O9 Y1 j0 U$ `* H
0 j C# s0 |% {+ i# W8 w0 v' G& D) A8 E% y1 q- @
CKFinder/FCKEditor DoS漏洞6 X/ d- h8 x( j! s) z
$ O: Q& y9 f9 \# k* m
相比上个上传bug,下面这个漏洞个人觉得更有意思
( U+ u3 R& g: Z8 A* z+ C I& I7 |8 A5 }( `+ E& k
) U0 a, n) @! _, {+ L5 Y
& h6 R! P, f( X/ Y# f4 v/ dCKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 0 V: l% m. ^* _, j- }
; `! ?% L |1 D! P2 _3 r' e
CKFinder ASP版本是这样处理上传文件的:, c6 h+ Z, y- P3 p, |- K
8 f4 g! v+ ^! B; c. c# T当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
; I/ g1 U& \7 P& H# c/ F: q+ x$ e# y9 q$ s+ g& L b/ I- I
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
3 x/ f5 U% ^' c" f, }2 B
' V- V D8 e; |- M. @, Udos方法也应运而生!
/ e2 C2 i; V$ i# N4 @9 k9 n0 u# F5 G: {% S3 h* P8 k" J
0 K5 D" L }2 u4 w% N( }/ L: d f
9 e5 ?& d' a0 o; [1.上传Con.pdf.txt9 h% Y- a* g& p" U. K- U
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
O6 j& M2 ?+ \' m7 e1 v) A, E9 q/ M- h3 B1 ]
|