感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文9 A+ ~4 n* b) S6 i3 d8 T. S$ x
% v% ?( ~* ?! N# S
原帖:http://club.freebuf.com/?/question/129#reply12
! w- `( o7 x8 q# g! b9 s0 c
' |: \ E1 {' {' CFCKEditor 2.6.8文件上传漏洞5 d0 ~* m5 ?) ?8 Z# X" R& U; p
! l5 g6 w/ J4 o. z: T
Exploit-db上原文如下:
. H* i1 J$ [3 s0 N; q8 y9 ]: P6 o v3 m/ H; g
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
6 v% S2 o. Q# t( j* h% M- Credit goes to: Mostafa Azizi, Soroush Dalili
+ F2 R9 E6 g2 B1 E- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/5 S" F2 H9 j7 j' t* N8 [
- Description:; {5 a0 U3 r8 H0 K5 G& o
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is2 T9 a7 Z/ G8 e% |8 T
dealing with the duplicate files. As a result, it is possible to bypass' h: b: ]: {) r5 N
the protection and upload a file with any extension.3 G( d, [) ?/ N6 q0 |9 H
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/( {9 V/ C$ b5 p. j' W: P& E8 F
- Solution: Please check the provided reference or the vendor website.
& [5 h1 g% O; `4 [3 j! ^$ P! f; Q/ U2 u7 q2 D1 f1 D* a8 J
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720
5 s7 V4 @( {) W& X+ x"
+ `7 r# M0 @& ]3 c rNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:! O$ w. {* K5 D, w1 B
; ~/ N" u4 N( ]1 l5 ?! |2 b' M/ H+ ?In “config.asp”, wherever you have:( o, G- P- M7 m4 f
ConfigAllowedExtensions.Add “File”,”Extensions Here”
" L1 t, d, S/ h( n0 r; x ~5 N0 yChange it to:9 P* e1 R; G2 F: `# T# D; N
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:; W5 t7 o9 y8 ?& n4 P
# w1 @2 g8 V: W
1.首先,aspx是禁止上传的
$ D# Y! P8 O- x+ q2 Z5 B2.使用%00截断(url decode),第一次上传文件名会被转成_符号
" e0 [/ S P5 p
2 m0 ?# l' f' X5 C" E8 M( g7 c
! P6 d; k% Q0 a; W接下来,我们进行第二次上传时,奇迹就发生了9 h+ ?6 O4 P* u" v" Y. B
) O4 E7 n! n T+ @
% X7 W& u2 v% m( N3 }6 i H/ f: a6 {/ L( h# o) x/ w2 G% t7 u3 s
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html2 r5 I# O Q/ Y9 K8 H9 Q
- D; t. b* D& V/ n2 [# E
% K2 j9 y( ]/ m- `* e3 p
+ W4 G& F y/ ]+ JCKFinder/FCKEditor DoS漏洞
" Z% P; W7 ` n* e' p8 W
+ W" J) R7 I+ p# _& f+ o0 y! e相比上个上传bug,下面这个漏洞个人觉得更有意思( o3 f2 D0 s" Z: t: r; ^9 ]
) p! F7 w( z9 U2 C5 I* t2 F
! z( i; T5 u" ~0 \
! q, c# U; g- C+ y7 j! L9 |CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 % q& B( ^" x' I) N2 q
: i, I7 s' d* ~7 q2 qCKFinder ASP版本是这样处理上传文件的:
! s% r4 {) E5 x3 e* L& Q
# L4 W9 G3 ~& L; `当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
8 H* I& i" b! h! m+ }5 x3 p8 ~# C( o' u; |9 {* O$ s% ~
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
; h( O) E; h) j3 X* p! U4 d8 `+ m) B# M& _, Q/ Y
dos方法也应运而生!# k& C% m6 R5 b
( M! y- q! Q2 `7 K. b
: J0 T! v2 ^) e* I4 x! U* Q
0 F' H" {- O/ p' m; i& J( x( _% X- S& z
1.上传Con.pdf.txt& D! b# e7 y& M; I
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。; [! T7 w9 _% A0 U. U: i& i* o
; b% Q1 w$ ] d( @9 D& G/ D; Y" g
|