感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文8 R0 Q0 A7 W1 e. w) h s+ A
4 K- Z3 M9 b2 u4 R6 n
原帖:http://club.freebuf.com/?/question/129#reply12% k6 m- x7 Q, c* I
% p P! l4 a! \0 k3 g7 JFCKEditor 2.6.8文件上传漏洞
! \. D% A, o0 a+ N7 [. G, ^ H8 u% }9 y6 k* H
Exploit-db上原文如下:
, w1 O8 O; i/ Q& x6 \; P" a: t: A$ z- C' O& o
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass. R2 L: d$ t X( `* v; }1 X
- Credit goes to: Mostafa Azizi, Soroush Dalili, y" {0 u+ I& \: N9 n
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/; c" ^# F. Z" u, @# u
- Description:
" F+ f, i9 I9 \+ u( V& T% r/ ~There is no validation on the extensions when FCKEditor 2.6.8 ASP version is
+ I, w% K& s" Xdealing with the duplicate files. As a result, it is possible to bypass
- J) }& W8 y6 C, {# b0 a0 cthe protection and upload a file with any extension.' q7 L# [- B4 }8 W( e7 B* D
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
, Z6 v/ \3 H: k4 e- Solution: Please check the provided reference or the vendor website.
/ b$ y, N. U+ `0 r4 _8 S5 `2 t& G
) S$ U# @* I, n- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720/ x3 H$ X. b W* \$ @1 Y
"' g( e% h2 d" I( c$ f, Z7 l4 ]: f
Note: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
; s: w8 J" V9 H6 r: o; Q7 r+ J! t ~7 ~! A" s$ O
In “config.asp”, wherever you have:
; I2 ?, z3 v4 e# H. A ConfigAllowedExtensions.Add “File”,”Extensions Here”
6 ]! ~$ f, `- C6 l6 } g/ YChange it to:3 A' r5 N0 V. W: _. m( O6 ^
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:
4 ?' ~3 u% e2 ^0 a8 V1 w
4 d" r, s: a3 ^! |/ L4 b: Y8 N1.首先,aspx是禁止上传的+ `- n- u, y5 u+ F3 Q0 u0 D
2.使用%00截断(url decode),第一次上传文件名会被转成_符号. o9 C* n& x3 s
5 ~) d+ Z% _# u' o
8 A4 S" m" `3 i+ G( \1 P2 o+ P8 Y. K, @0 v& u0 \4 P7 }
接下来,我们进行第二次上传时,奇迹就发生了4 n; Y6 D% R" G/ D. ] U. i
K4 Z* t) P, c* _, H+ A( }/ s: z+ L( R/ I2 k1 n- ^
6 {# \5 y' U+ Z, V" j
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html: ?" ~3 Q- z9 S o: v
7 T2 k/ U0 `; M7 H# ]
* b* T: G4 J4 D; ?8 C+ d: U' e$ H' N7 ~
CKFinder/FCKEditor DoS漏洞# k7 w; e1 o0 v5 N
4 f" J \9 f( x! \/ S3 }相比上个上传bug,下面这个漏洞个人觉得更有意思: F! k$ x, j9 t6 }8 \
% ]6 \5 r. b( z0 A+ ^6 | 6 ^ T7 V1 Q7 D
' e+ Z0 G% U( a' x
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
9 b2 V( G a& V! c: x0 P* ~, `7 ~
CKFinder ASP版本是这样处理上传文件的:4 n& n. ~8 M1 t0 `% W
$ [4 b1 a4 E4 W" f& O$ `
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。! w+ `# d% I/ P+ M- v5 P
( k. t1 T9 j* T& {% B% |
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)7 E4 M8 {/ \- l( k: o! r4 z+ g
* Y7 q1 r) U% c: |' C; G; idos方法也应运而生!
, F5 O: G. P& L5 f% O1 a. F( f7 y& [
1 }3 D( W( L5 k/ R, m8 c 5 U- p' m' j; d- h# Z
' p0 Z6 ^ R( t7 Y8 l1 y1.上传Con.pdf.txt6 o& `4 ?+ q; S+ w- b" J' s$ I3 H
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。3 `9 L' a' Y, X/ l) R
, y! d; p( o4 t- ]. z* u& G
|