感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文6 x* @! O: d( v9 P9 P3 L
* P" t) ]: E4 Z: r% ~* h; L原帖:http://club.freebuf.com/?/question/129#reply12
# N: _6 a# q: g" j8 y& b
8 Y6 ^/ A& U+ m% J; A1 G; L+ RFCKEditor 2.6.8文件上传漏洞
6 _$ o& h4 [& x, f
" O% p' v: v: h2 {7 aExploit-db上原文如下:
* s t6 @; ]6 Z @8 M( ]" x1 M1 j; e h% H; O! z8 G4 g1 z% r+ `% b
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass8 Y; h i9 Y+ D( L
- Credit goes to: Mostafa Azizi, Soroush Dalili: i( F3 L/ j/ I
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/; |2 g+ [, X6 _. [6 L6 E# d
- Description:$ r" r( q2 l. i* J; n/ F, ?
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is: i0 u4 C8 E% J
dealing with the duplicate files. As a result, it is possible to bypass) d* I' y2 q, o
the protection and upload a file with any extension.
7 }: a0 e0 _5 U, k! E0 |) P5 G5 h- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
, N4 f7 v9 Z+ [- y& v/ N- Solution: Please check the provided reference or the vendor website.
& ?2 [" Z" s( J5 v1 k& t6 i( k4 `1 ]: x
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720
" z1 v3 J1 x1 ?$ t$ l"
( U0 F; y, J4 Q- c2 O8 |+ SNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
: y1 C& Z0 H8 D
+ F! {) {- d: ^* z/ u E# M4 JIn “config.asp”, wherever you have:
3 Y' |/ O/ |$ R ConfigAllowedExtensions.Add “File”,”Extensions Here”
, a. X8 u6 _8 v# h3 t! IChange it to:
O' A& v6 ?! W) V ^2 z- o ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:' {2 O8 t% `* P/ Y! E& v( q, ^
7 [) B4 i3 A0 E" l- X' R2 Z
1.首先,aspx是禁止上传的
3 h5 d5 F. @/ F2.使用%00截断(url decode),第一次上传文件名会被转成_符号
2 r! A2 B9 I: Z. ^4 t0 _
( v# I4 k' g2 n/ d" x$ @- n4 i S" ]5 D7 f
. s- i* C. o7 N; {* P4 T接下来,我们进行第二次上传时,奇迹就发生了! C/ c6 o C& n8 Y* }. u7 J6 l2 w
" T6 k" I! w8 W! \; y/ a
+ V+ w# ^) }- r9 ^# S y, r, O( C, x/ x
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html* r2 S4 @7 e$ p0 u8 H
! g1 ^& D# o1 W! z2 V- D& ^( l
& x% H$ I( A5 q# `1 r) _+ t; J5 `
CKFinder/FCKEditor DoS漏洞! I! y6 f, H( L& h8 ]
0 I% `) I" j1 K) k9 m# a9 j相比上个上传bug,下面这个漏洞个人觉得更有意思
& H4 @) w+ }& Z# e5 U, R
! \) R' r5 @0 ~+ B1 u8 X' o # e1 j# D. Q: p% f
' k; {) H7 _9 I4 k) `3 }CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
% \, Y* h8 ~; F; p5 c7 B
1 u' G+ a; m' J. a# U- z7 h XCKFinder ASP版本是这样处理上传文件的:
+ d n& S' u8 H# Y, L( D, j0 N1 h
1 z8 c. X% O$ K" \3 H当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
+ p+ Q! w. m$ W' d* s# a" _" ]9 F9 b d% U5 }7 x
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
& z, p+ d6 [+ J& o
4 ]& m* u! a8 n5 a+ X& p0 {2 K# ~9 Hdos方法也应运而生!+ u! m# I2 u5 H# N
. I( M" V6 k; J
( d8 @ T" b3 z, Q8 @) y0 |/ Z
$ I4 A r' t; ~
1.上传Con.pdf.txt) [7 k. S: o2 n# B" ^$ |+ O
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。9 v. Y- L1 S+ h& n* r4 M; I4 g R
. x; l) j# j k: E6 y
|