感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文4 I( n; U- Z2 K6 p3 K. h
9 U# i# W6 [) V
原帖:http://club.freebuf.com/?/question/129#reply12* h- [* n5 f' ~7 Z/ c S
5 y* T4 D# d1 O' v
FCKEditor 2.6.8文件上传漏洞
0 Z: I# s& R+ ^7 m! P: w9 X8 b" ` y. `8 f7 T6 Y( A
Exploit-db上原文如下:( t2 K2 L" W0 l& ^
& g8 k2 S5 ?, \; }
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass% C( Z+ {5 E0 @ H! g- b2 Z
- Credit goes to: Mostafa Azizi, Soroush Dalili
8 H+ |: Y6 ?( E/ c' h, J4 I- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/- k2 t w: A5 K' M. [# F8 n; D
- Description:
7 n' D2 p9 J8 y4 FThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is
% D" H7 k$ v6 j6 ]; gdealing with the duplicate files. As a result, it is possible to bypass5 D, l" r/ `# i- ^
the protection and upload a file with any extension.
# I! `( g" i$ t, B" q! [# L8 {- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/: |/ y& J% s( _4 o; L/ [9 ~
- Solution: Please check the provided reference or the vendor website.
. l% E) S: C* b- r, z7 U) j' A4 n$ q) J
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720! d& c% \6 |# C0 R* @1 s# Q) m
"
6 T. A" y2 Z2 s- z) Z5 pNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
+ j$ o1 @" M- _% o$ o* w; n# `6 h
, o/ v/ ^9 z# T( O0 x2 cIn “config.asp”, wherever you have:# a# e+ S8 Q7 N% e
ConfigAllowedExtensions.Add “File”,”Extensions Here”$ U: B* N! @7 S4 b1 ?( M' ^
Change it to:
* Q0 k0 o) s, N& U+ R& o' ~ ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:. ]$ n+ L: i( T* H$ F2 e0 b: O
7 k; W+ X. C- z) m* w; N
1.首先,aspx是禁止上传的. l3 B9 K% \3 l- e
2.使用%00截断(url decode),第一次上传文件名会被转成_符号
0 o! r9 s& w6 H! o( n2 ~5 v
) P- x7 i- b4 B% Q) ~5 R" c' \) l5 j# R! p Q" s
: P% @# k2 g' T' |% W8 G
接下来,我们进行第二次上传时,奇迹就发生了
3 Z, `, `6 u1 r/ H; C4 ?7 f5 \9 s8 r) U; _
9 i/ w* Z! }' w' s) X' f
0 ]% L+ x5 o" G; c- t+ a
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html
% }9 I0 ` Y& R/ D' {$ X5 b- I7 s, o- ?- b; V9 g7 N% C6 k
8 O2 T+ p/ ~3 C2 M0 h! N% D' z7 D" F3 Y/ h X, F
CKFinder/FCKEditor DoS漏洞5 T, ` g8 c9 g: T) |
: Z/ \% U0 g# p, g! ~# W6 j
相比上个上传bug,下面这个漏洞个人觉得更有意思
" y1 c2 s3 b1 \
, n( ~4 m' u1 c$ @, h" q& r + s0 w/ I0 d$ R6 O; U
8 I8 A# I3 ?) C7 R% C3 uCKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
3 I7 A5 t; f; Q3 K5 C7 I0 r- F6 b# n" j, L
CKFinder ASP版本是这样处理上传文件的:9 ~0 v+ r, |; T3 \' x; K$ _5 u
# x! d5 R4 Y8 w U1 X
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。! r1 q$ ^/ n* t \8 ^: E
- d, a5 p0 R% F那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
9 {, L7 Y3 j7 m0 X6 n
: L6 y0 m' ^3 C, Y% Pdos方法也应运而生!/ c* u9 f6 x, {5 Z) n
) m- m$ ]6 C' t& p b- V7 N
) p! S! G: \1 H# j# M3 p9 W0 m
6 t" b' E7 T+ g1.上传Con.pdf.txt: e3 j3 G. C& {; [0 a! e8 S) Z
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。* o6 {9 ` x& r$ Y& H/ \' T- m p
8 u% `7 s5 b% ^/ I' } |