感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
4 F- D# `+ G- t" q4 P( k( G
# p) w0 j8 K/ f4 D) N/ ~9 J原帖:http://club.freebuf.com/?/question/129#reply125 ]% o0 A G; w( v( d0 j
! ?0 z+ Y7 e( {0 [% z" qFCKEditor 2.6.8文件上传漏洞
- m3 e- B. j8 |0 Y( w5 }- s9 J( L& ]5 l1 }2 X! X6 ?; v1 \
Exploit-db上原文如下:
' b3 b& l x: r# p0 O! @5 \. y/ a/ F Y' l( c: X7 p
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass" q* [, A0 l! A% t' A
- Credit goes to: Mostafa Azizi, Soroush Dalili
0 Y& }! G- R7 o+ l) g/ Y8 Y- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
$ l: t) p' X. ?) D P/ Y, n/ N( @- Description:% P/ c! R$ ]: l; \7 O% G
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is
& j, T V1 E' e8 {3 f" kdealing with the duplicate files. As a result, it is possible to bypass
4 F# c6 H9 g- N o: u7 ythe protection and upload a file with any extension./ h& v, y$ p. g
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
5 E9 s/ G% Z Q2 A) |' O- Solution: Please check the provided reference or the vendor website.
4 I, U' n) H: K5 R; _0 j# |: b7 {4 r: M1 @( f0 m) X
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720$ |, T( |) e6 A
"
" o7 U$ Z; l5 {" JNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:* o2 g7 A3 b. D: ?) Y# } F
2 \9 `; P& i% n2 ]
In “config.asp”, wherever you have:# }: C6 a. S. C$ W' W
ConfigAllowedExtensions.Add “File”,”Extensions Here”* s. h0 f) o7 X C; S
Change it to:
, q4 K0 c @& |5 _1 ^ ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:
% ~" G( C6 I) a( g
- `; a$ }" |( j3 |* U! L+ k5 X1.首先,aspx是禁止上传的
9 C2 f2 e6 h0 X7 g3 }: j2.使用%00截断(url decode),第一次上传文件名会被转成_符号
3 f+ Z$ T6 y8 E, t# p; K6 b( _ ?) T! m
; j: }5 m/ U8 {1 `0 A! f8 h, \
- b* R) }2 g" q( w
接下来,我们进行第二次上传时,奇迹就发生了
' |, Q8 O& k( g. I2 T& e e$ q
, y$ W2 K0 q2 q' b) ?) q1 z; @# A9 L/ t+ ]0 I1 R6 p
& h( s5 w# ^6 e" Y5 j# D: g* w: a代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html
) }; {' m8 Q: I6 y- ^& A
2 o1 ] P/ t& V: X. i& g* T2 ` ) \' s: @5 A! U5 U t# X! k" ?, h
. M! K4 Z5 g2 I1 vCKFinder/FCKEditor DoS漏洞
K x. _! b2 m. W7 S. k; @ R( K3 Y) Q6 I# j; u6 g
相比上个上传bug,下面这个漏洞个人觉得更有意思9 X w, `. k) O/ `$ I$ D6 \
) D2 s5 A, T1 v- ^
, E5 V% O$ S( m% f1 ~5 ]7 X, P4 o6 j+ |0 N
5 t! N& f9 u& ~
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
~3 W5 q7 C8 Z6 k! f& M% u! k0 }9 ~ }) e6 b! l( f& ^; {. W
CKFinder ASP版本是这样处理上传文件的:! m# S6 K2 K/ V' g7 B4 j- K
/ X8 x ?+ t7 v! O) a$ J当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
8 `3 B1 L; b; P" n& D; @ X: ~' h/ H$ a4 ?. ~
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)9 Z; T! G) V+ B. }& X6 L. n
0 W* Z u+ V6 _3 I9 h! ~8 {dos方法也应运而生!3 y p3 @* E2 O' e* E
1 E, P4 y+ _( }( @
% O# R! ]$ K$ _7 e$ X' t6 x6 s
% F8 I) J, B }0 y( u) a1.上传Con.pdf.txt$ O0 Q, P; }/ n# Z
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。: B: ~( i. ~1 |3 p8 ^; n n
5 B+ S+ V9 z. B/ b3 f9 H
|