感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
& R8 g4 e8 S0 W4 t/ z2 O# Y2 w) R
原帖:http://club.freebuf.com/?/question/129#reply124 J( B: l: D4 T0 Z; }+ j4 r
; h3 @5 N9 s3 l* b! `' p) z
FCKEditor 2.6.8文件上传漏洞
4 P; F2 {. V0 K# S
, A( w1 P6 [8 S+ n9 MExploit-db上原文如下:
; h% M# V: E, e# \
" Z) [9 q6 k7 g0 U- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass( k3 |, a! L2 @- [! \0 j: N
- Credit goes to: Mostafa Azizi, Soroush Dalili
7 ^2 n6 \3 k. |0 K- V7 n1 e- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/# f/ z/ M4 b5 R+ [: s6 J% f
- Description:
( O7 s) o3 }* j7 @; zThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is4 Q- [; G/ M3 @# G; O9 ^
dealing with the duplicate files. As a result, it is possible to bypass
, U7 T' |4 q9 |5 |the protection and upload a file with any extension.' r5 y: \+ ^, L& c K! }$ U
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
/ A# R/ H- [4 {! \- Solution: Please check the provided reference or the vendor website.
' @4 s6 x9 {7 b w4 g' p" f, m2 [7 D! c# c& @ Z& E9 z2 t
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720# Z% E; V R( V$ H3 A* W
"
: i+ u2 c; o* R- G9 f9 hNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
6 @9 A8 W/ {8 E
' M! F# |, o/ M% T% q6 J0 [% LIn “config.asp”, wherever you have:1 k) k( u2 a4 Y" o) ]% O5 N
ConfigAllowedExtensions.Add “File”,”Extensions Here”$ }- q7 Z5 l7 Q* N
Change it to:$ |4 w j( M) P8 h% P
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:
! {, |& Q; x: E7 C0 Z4 u0 [- r6 G1 I7 W% Y
1.首先,aspx是禁止上传的& \& a$ S) L. V
2.使用%00截断(url decode),第一次上传文件名会被转成_符号
7 V) p, }' A& ]1 {: c; p' P) b& F5 ^% i+ s. h
0 ]! p7 r) e) ]+ D+ _) i, L$ }' H* n/ N1 u6 x
接下来,我们进行第二次上传时,奇迹就发生了
5 r0 ~! B+ E$ M/ G, ]8 O3 Q" D8 G
: l, v5 |9 c7 C7 |2 r
7 i& _: ]! f+ H* U代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html$ {' e( a3 C) i3 L7 A! [; K4 K
" Y0 ?! }! F h5 X
7 E, v# j' r- f( p4 m9 s" T
# t% U* x. \( y4 _1 fCKFinder/FCKEditor DoS漏洞" w# q5 D2 J5 e0 N
7 \2 A- v! J# M$ l相比上个上传bug,下面这个漏洞个人觉得更有意思- \, ~' i; j) E4 z7 E+ y0 d* m4 Y
6 ~' X- y0 z$ T7 }# } 5 Y/ R5 w2 @' H3 X, Y
7 o4 J$ f1 Q- |* b" S% X
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
! c' }0 U) J- R" R0 [! P2 l8 e4 U7 ~3 n- y1 b
CKFinder ASP版本是这样处理上传文件的:
( T; [7 _# ]" }% n4 O" \! ]% ~- X$ o- B/ y3 P+ ]
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
4 k2 O8 q$ G' O _
" T! {4 g. p( G1 N$ @' w3 m$ V4 s# S那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
' |3 m1 q' j( K
/ }: H" f6 p+ i8 `9 R. bdos方法也应运而生!2 ?: h; w. B1 |7 a: ]/ o
5 M* A; ^' Z$ Y7 v9 h" H4 R
3 t6 O+ F* ]+ C W) `; _* d7 B* Q3 d7 ^% o: G" g
1.上传Con.pdf.txt
l2 |% P& q: j2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
2 c' w$ N, y( c8 y& k/ F# f; c
# e3 U C) _ H3 p6 n" T |