感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文# G$ P+ ]! @' ?: b" R3 I) j
$ W* G+ j- |2 w! p$ S
原帖:http://club.freebuf.com/?/question/129#reply12+ P$ k- d0 y7 i1 l4 q& k* n
8 h) h- {, A4 L$ K% \FCKEditor 2.6.8文件上传漏洞6 K# D+ ~- J3 q9 Z5 D5 [
5 [: v9 W4 l, t, T8 OExploit-db上原文如下:0 e1 B' c% J6 H4 r' S5 V3 f+ B
, c' E: }5 J4 d+ R/ A$ e5 {
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
, _ f" j! ]* T1 l, p, v' a) m- Credit goes to: Mostafa Azizi, Soroush Dalili
. I; j5 a U& ~: B- T' n$ r- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
8 K8 W7 k9 K+ p) x6 k- Description:
9 q) A: p/ Q% Q7 c; R$ R: IThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is
% c) I4 D2 o. {dealing with the duplicate files. As a result, it is possible to bypass
; |0 ?3 `3 R, z2 Gthe protection and upload a file with any extension.9 W3 ?: n# U7 f" [0 ^# [( v1 A
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
! t) N8 ^* I- D7 m- Solution: Please check the provided reference or the vendor website.% G. \: E* p$ s) T' i( J2 w
2 M( a# K1 x+ C% m3 t$ |
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720
4 \# o3 T4 q0 X8 X: z"
/ h. w9 ~ ?8 V& @' ONote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
2 W8 O7 R& }3 T& V8 {* W H! ^4 R! }& Z; z9 F$ j% g' P; @$ j
In “config.asp”, wherever you have:6 `7 C; i$ V, Z# `' t; k9 O
ConfigAllowedExtensions.Add “File”,”Extensions Here”7 @2 `' }' W3 l" Y. v& K
Change it to:4 x5 @/ i% Z7 {1 L7 m7 ?
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:
! t7 M5 A2 a! ^: u' |
# n3 w( d1 ~! {5 ~) D: O9 d1.首先,aspx是禁止上传的
. f4 w7 Y% N; l2.使用%00截断(url decode),第一次上传文件名会被转成_符号: D- a: b; U5 t0 p% l& }8 x2 s
% c. |* b7 c7 C2 F# h9 I- T
5 d0 Z) {( P( w2 d
, A2 w5 F- w# T+ n$ `; l6 F8 I接下来,我们进行第二次上传时,奇迹就发生了, u- s" M2 v1 Y: W4 d9 s
* N' I0 S# |# B8 D4 y5 h8 r9 D& ~
0 e2 A1 o# w$ ~' D! N) T
' y V' r C+ l7 X' V代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html
" F5 ~2 w" m: T/ x8 O. U4 Q7 k1 l, e( t/ Q8 _
, X. n2 _$ V% f. s; U/ H4 G& |% l9 N5 X) V, V* \
CKFinder/FCKEditor DoS漏洞
0 N* R* X7 \ Y( y8 y/ q9 Q! Y$ b- }9 E) a" H4 n; e
相比上个上传bug,下面这个漏洞个人觉得更有意思
( \1 _& e+ y/ ~# t# \# ~1 O1 W$ v! ? |% N1 @
. d3 C8 t9 R5 O* v+ v
7 O- w$ O" d. v$ J2 ^CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 ' C( ~, s7 e' y+ [: Y' o6 s
2 k7 @ I+ L+ K, {$ d: I. F
CKFinder ASP版本是这样处理上传文件的:
# N* c" e+ F0 |) S# i; |7 X+ a+ @2 [. a0 [0 S9 y
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
3 V( W$ D9 _# g3 y7 o
% C" b8 m! A6 D; z1 ^3 c/ c8 u- ^那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)" V5 }5 U( C3 G! x! O
* v6 x6 m* H- R: h1 @- v
dos方法也应运而生!
9 S+ O/ r7 m: g( T/ v. e& V+ L* ~+ d+ B. s
- A: r9 }) |0 v" j; Q1 w% M( \1 z; Q5 y; H4 k3 x/ r
1.上传Con.pdf.txt3 ~" s0 }" q5 H
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。' Y" o+ I/ R$ e+ z+ z+ b5 S
- r1 i6 k3 a' ]5 S% q0 b% x9 h5 { |