感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
& ]9 Z& s" m6 r$ P T* l3 Z8 B, R) e2 z: @3 ]7 ~1 m
原帖:http://club.freebuf.com/?/question/129#reply12
6 T8 V j( K+ E+ S
, I3 S$ y( T4 R$ c- K: Q: [+ |FCKEditor 2.6.8文件上传漏洞% g# Z% K7 [) q
$ ]( Y: v* A& c" Z7 c
Exploit-db上原文如下:; d2 R, Q( K! X- M
+ {+ \9 @* L+ Q6 ~$ |/ O" D$ R; q
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
/ ?# B/ d9 K$ R7 ]. e4 i- Credit goes to: Mostafa Azizi, Soroush Dalili, I( e. j1 w3 o q
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
, v: W" l) w) d: r$ J% p6 m9 B- Description:
" @2 V5 V5 U9 X5 `- w D$ qThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is
0 [, \' i+ J3 S, V% P5 t4 {* |dealing with the duplicate files. As a result, it is possible to bypass- Y! b- z3 `% x7 U7 ~
the protection and upload a file with any extension.
$ i' Z2 H) Z* B7 K2 f% T- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
j+ c. v* @. \1 [5 k. L, w r- Solution: Please check the provided reference or the vendor website.: W7 ]2 y4 x6 e. K% j% O
/ q5 A- c3 s1 ]4 Y! l6 k8 P
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720' L+ [) ^; y; s- h! x
"
( v5 A5 u, }/ o4 jNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
5 J5 Z% q; C' F9 @" K( Q
) T* j' I h$ Q$ YIn “config.asp”, wherever you have:7 A' e4 w8 s. V+ N% @
ConfigAllowedExtensions.Add “File”,”Extensions Here”" u C& Y; j" K9 i- C; f' v
Change it to:) t& S; i m3 c# Y0 p/ Q3 u# i
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:! x6 Q' G5 @2 H# a# B8 j6 A! i2 C
( k1 w/ i7 R1 W
1.首先,aspx是禁止上传的: [" }7 C3 p2 p ~ g
2.使用%00截断(url decode),第一次上传文件名会被转成_符号
% C- E4 P* i, r; B X3 ^7 u
5 W9 d9 b2 H* x( D! {; m, e0 b/ S# K
. t0 X( a6 J. R2 F% S( K
接下来,我们进行第二次上传时,奇迹就发生了3 N0 h& J5 r* ]! x' A0 q. K5 {- @" D
/ u, }; b6 O- X8 C3 C% ~4 I3 l
! B/ a$ R5 R" u z4 O2 Y8 E3 v8 l
: A. F3 i8 S# l( Z c6 }- a' Y2 r代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html
6 x9 E1 @$ ?& }! s8 s0 [2 y' B) }! W# L- J
" x% H- h1 V+ B1 f6 y7 @& P9 X8 I
' u4 }8 W1 T2 V
CKFinder/FCKEditor DoS漏洞
) [6 B8 L) h# v+ w9 f; I8 \( j, o2 Y6 I! t& v% n8 a6 b
相比上个上传bug,下面这个漏洞个人觉得更有意思8 G( j5 |$ F: d8 D+ T7 w
9 n/ c! H7 L2 ?- e& K - L0 u# j2 T5 ~& g8 l) Y c, M7 k
8 t& N' e. }* z/ L# N- P/ F: N
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
+ j- i, y) K- m' }7 A |4 ~2 @! G" F/ U5 B) ~" J( Q% v
CKFinder ASP版本是这样处理上传文件的: [' ]6 k. g+ @6 r: R; \# }
8 H0 d/ y. g8 a$ N# T
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
# s$ h1 S* K2 Z" k% ~
f+ w" O# g* R9 b1 \- s那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
6 V- C: k* W+ P# K5 |
# [) \) B2 [0 ~ k8 t h1 R5 Q; {dos方法也应运而生!! K& G9 W2 S) U' z5 g4 I; Z4 z
. h5 U2 Z% } H. e0 n
, j/ ?" w$ W1 t. s
+ [2 u$ a2 D. ^1.上传Con.pdf.txt9 `& \1 W; W; _
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
$ S& F9 W; J) o. q
' y+ W6 ?% p' K) s3 j+ o |