感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文8 E0 d O0 e7 G6 i2 n
9 Q. W4 z5 f5 R- o
原帖:http://club.freebuf.com/?/question/129#reply12* H0 a( S; ]; ^( m: \& C0 h9 @
# b1 b* W* @: D) z
FCKEditor 2.6.8文件上传漏洞
1 s6 E7 \9 j6 j5 A7 E$ u r2 y6 T+ I* |3 u1 V+ W$ q! V9 N* u
Exploit-db上原文如下:
5 j7 `* ~ G# n: o/ N6 w6 A1 ]+ g9 d" P( j
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
/ f* N2 `0 u1 o- Credit goes to: Mostafa Azizi, Soroush Dalili# n) t$ F+ Q- I$ k
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/* A F: U+ g$ z5 X" O- ?5 C9 J4 r, _
- Description:
1 N; ^/ d+ F& {% I! VThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is
& h+ U0 T+ @' D) j% P) zdealing with the duplicate files. As a result, it is possible to bypass
+ p2 b' W& |8 U o) zthe protection and upload a file with any extension.9 i# N+ d* J$ F. ?$ d! I8 h
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
# Z7 @+ n7 f; n' \$ i8 S- Solution: Please check the provided reference or the vendor website., ]6 G' U6 O" { F! v2 |
1 ?3 e6 X. b7 o
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720/ {' ^6 O; L2 ^. s% K, x5 g7 V
"
1 x" C2 b$ R1 o+ yNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
; G2 Q- L6 \+ K/ e. q+ C3 D! b. @7 @
In “config.asp”, wherever you have: J$ b2 h2 A3 j* ?, ]
ConfigAllowedExtensions.Add “File”,”Extensions Here”0 A, A. u; y9 c
Change it to:* I+ B2 _3 O+ m+ c: B
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:
/ @0 A ^+ f/ J+ ?* S% e/ `* G: B1 x5 S6 c& B4 g. [
1.首先,aspx是禁止上传的) i0 D6 c X" ^1 b' P
2.使用%00截断(url decode),第一次上传文件名会被转成_符号; M0 a q/ d0 Z7 e S7 Y
( L) S _8 I! Q( C
4 `2 U& o$ J, s6 W7 W9 A# v
% T6 z6 r* x* f8 l接下来,我们进行第二次上传时,奇迹就发生了' o6 H3 }" r6 S: G# ?
0 f7 K2 Z1 B: E
# X/ _; v$ @% K6 N( O- P/ A7 E
7 T4 C3 @2 p% N6 F' s代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html [4 W; Q$ N, v) N- C
7 v9 \; N" R. }) }9 M4 V: ^
& a6 [# |+ y( @4 f0 g' C" P
' n7 d+ K% N9 J3 [) ~. hCKFinder/FCKEditor DoS漏洞
6 O# s- \1 w5 o+ F/ x" ~8 O6 X5 A9 B7 W" [2 y( s! ]' ^
相比上个上传bug,下面这个漏洞个人觉得更有意思
$ R" K* H2 N9 V7 ]* a$ n
8 c# |4 H$ j+ B! c' O# b2 T " A! y" q ?5 X7 l b0 U* D
2 I3 y V: b, H, x; g$ s
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 ) `8 T* \8 S0 Q/ _4 U! o
5 K5 r" ~ c; F$ B* }- gCKFinder ASP版本是这样处理上传文件的:2 @* s: d, W2 O7 B y
, U; f! A" \8 ~
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
1 P! e& ?+ g U( C2 N" K& g% {+ ^5 _
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)& j5 U0 R' o# |& {
% a) Q- a$ _4 v. |
dos方法也应运而生!. w+ l" D8 v& `7 x! B h
/ E c% `. ?. h6 [ s t* u2 t0 t
- ^8 r1 `* D( U2 M8 M, b
5 p! J" m! E+ s* M1.上传Con.pdf.txt. p2 {+ B, \: X" x9 Y9 l
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
9 }; m e' ]% _# @# W* g
6 ]! H# [1 L: H/ x2 g |