感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文% n* r: ?* k H0 P& e
& |1 I/ j' I6 G+ z
原帖:http://club.freebuf.com/?/question/129#reply12
/ ]6 c0 \7 W: F( a8 { c/ `# e2 B' ~* [4 M' E! G9 f& }! \
FCKEditor 2.6.8文件上传漏洞" {. M- s n& X! Z+ m0 h
2 P8 a7 X0 o+ X
Exploit-db上原文如下:) @, N/ ~' c* X. ~
( ?8 P u3 \5 z* I& V9 I- F7 q% f7 C
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass% f* G2 c2 z& F% C, ^& F+ M3 K
- Credit goes to: Mostafa Azizi, Soroush Dalili9 f0 c5 M8 H) a; D) w7 S
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
0 @6 s4 J% d! V) B- Description:
% A _0 J9 A' `6 B/ ?, t. eThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is$ G: k1 G7 E5 G- |0 B
dealing with the duplicate files. As a result, it is possible to bypass
- T& U2 r" J; G( L- D3 y% Wthe protection and upload a file with any extension., Q" }; |9 h4 g) R6 _2 e2 ^
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
9 k2 p& m4 S6 \. p) \- Solution: Please check the provided reference or the vendor website.% Q9 Q( q8 \& N9 J
- h0 ~! D. O4 s t' A9 L: I0 Z- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720. C/ z6 f2 @7 O% ~/ s. n
"
; p" g: R' I/ ^4 ~Note: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
$ W5 g; _- I6 c( x( \0 U9 c2 B5 g( M+ |& R
In “config.asp”, wherever you have:7 b% C" A" D% ^
ConfigAllowedExtensions.Add “File”,”Extensions Here”( ^/ C" U$ ]- A7 H O+ |- }/ g" ?
Change it to:9 y' Y2 E( z9 `
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚: _, S, [& P/ y) y( b$ y
6 Y- y* `) l; W6 s8 [# E1.首先,aspx是禁止上传的
. g! T' Y7 w; C, \ ^! J$ j2.使用%00截断(url decode),第一次上传文件名会被转成_符号
# c) X4 P% F! j; Y0 }
$ N0 _3 r% t+ s( [* }0 `$ n3 L
! U6 ^7 G# Z H" f4 J) ], R
/ B& |9 {) m% f1 w接下来,我们进行第二次上传时,奇迹就发生了5 @. H# W. q1 V" `- U0 C& w# T. {
s' K7 B- |) o; o, ~
4 v/ {$ Y: n; h5 v- V A/ \3 R6 s- S# s+ N' b
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html& e0 a5 n+ {- B) D- y* F7 [) h
3 v- k6 Q J- k
O$ x" M i) i- q$ d. z
; E7 ?: L3 N( YCKFinder/FCKEditor DoS漏洞
/ y( U1 L' h6 X f/ Q+ a" @
* P1 U: h0 P# j* J7 e相比上个上传bug,下面这个漏洞个人觉得更有意思$ k- r2 z. f, i% Y$ O% y6 _
! Q+ W& t5 l1 G8 x
" l1 i* |( R% ?7 ]* I5 D0 p* w0 j/ J4 X% [2 s, S0 S
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 ) [5 f& O: ? y! V; n- N
2 J3 I/ u- u) m. U! E$ @& ]! j( I, _- J$ F
CKFinder ASP版本是这样处理上传文件的:% l) x$ k' \9 p, T+ r3 k
& x0 R% ~! b: E7 R当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。0 G8 U5 u, ~8 O9 {8 ~9 w- e2 }( d
8 {1 F3 X t+ }* M
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)$ y! Y" v& }: p
) k7 w0 C7 t1 d2 j1 e
dos方法也应运而生!6 B; y0 v# f; X& f* `: W" X* L, s
) M' P7 [+ o8 c9 `, W! Q& O4 i
. \! G$ b) J* z: T% O+ k+ h3 [0 c! ]+ p8 t) j9 x4 G
1.上传Con.pdf.txt
" V. X$ U- `. r% {. y2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。/ U1 _4 }& ]2 Y0 W$ m. k
; m# J V8 q. ?/ ?! X1 o3 f+ O
|