感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
4 w% R/ ~5 s9 d$ H6 e3 x4 K
' o1 B- I* a4 I原帖:http://club.freebuf.com/?/question/129#reply12/ \( D6 q( Z: b& ~
( L& ]1 L% Y1 N. S* E$ D
FCKEditor 2.6.8文件上传漏洞4 ~9 F% ^8 O2 i. V. z" o- Z
z2 S' p0 C+ t/ W, `! w( |6 {" zExploit-db上原文如下:% x. u' o# N, u" B5 v: K
9 H' C' Z. }5 Q$ T* @- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
' m( r3 c. g, ]; _- Credit goes to: Mostafa Azizi, Soroush Dalili
0 L. T: ~, Y; }3 `0 y( G- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
; ~; B; T; o1 r" P" k% I6 x; L- Description:8 P5 m/ r' {1 o7 f, q, r! [% G9 M
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is
; ]6 i8 F9 S2 edealing with the duplicate files. As a result, it is possible to bypass
& _ e4 C$ u, i, e5 @! n" u+ C/ }* _the protection and upload a file with any extension.
9 q; a. a2 K0 t" |) d& v- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/5 S" s% a' A; S4 r6 Y
- Solution: Please check the provided reference or the vendor website.
4 I4 t& }/ ]: S0 n' c ?9 @2 J# G* \
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd7204 j1 C; g* M+ i2 _
"1 a+ v* x, E; D1 V" t4 @( H
Note: Quick patch for FCKEditor 2.6.8 File Upload Bypass:8 n5 j9 d+ I1 t! \+ E9 z
5 _- v) R3 y. ^1 K7 L1 dIn “config.asp”, wherever you have:
3 v# h$ |# x* }% R1 M ConfigAllowedExtensions.Add “File”,”Extensions Here”
: V" x0 t, ~, y4 a4 u- e9 P. gChange it to:
d( q- S' m% ] ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:- l2 n" _1 B* E: ^
0 N( e5 n, T2 b
1.首先,aspx是禁止上传的) Q8 `, c/ Y0 s$ k7 s
2.使用%00截断(url decode),第一次上传文件名会被转成_符号
5 Z9 C' H0 R( b0 a1 o' U5 }3 E7 s
% _1 ^" j& r' d; B7 Y
) g9 d. v) H& b6 \. A4 l8 _" D* ]* T
接下来,我们进行第二次上传时,奇迹就发生了
. B" d0 G7 M# ^. l, ?7 ~9 U. G+ ^( {0 S2 t" a+ D3 n7 z
6 V1 @# t- p3 ^3 g" n3 K; V0 @8 n* q' t) D! L8 A; w
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html0 I" ]3 a' N9 `& y' c$ Y6 s
7 x9 R8 a8 M5 o" L9 V& n. Z
! P' l6 a7 G1 ]6 o6 G
+ A' n( }7 W OCKFinder/FCKEditor DoS漏洞
+ D2 o- {7 ]8 s1 R* r, j% v* T' U* `, l& D
相比上个上传bug,下面这个漏洞个人觉得更有意思
" E6 p& N" Q0 s; }! N& P0 `" v. u$ m; ?# T5 f2 E* ?
. M. b6 K/ v* o5 o* b* q5 q
8 K7 _" h+ R' i+ K+ _CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
. H2 o4 @! Z5 q5 Y! n m- j" z6 g1 L) e" ]% x, h6 M3 P1 m8 m
CKFinder ASP版本是这样处理上传文件的:
7 P8 B( s# ~& x: k9 a9 T% l6 |( F0 @0 D/ x8 l
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。& Y$ I4 M5 z) f$ U3 \& O4 P
4 e$ J6 N; X) Q$ \# R. c那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)# D- ]9 D$ Y$ Q+ {+ X. \. d; j
& R8 X, f x% S9 Edos方法也应运而生!' x7 M+ o d8 _9 Y9 l3 g& c
9 t4 p3 E% Z, w1 y; Y( X$ n2 p
1 Y- p. `- }* J1 q; `1 N
' y! b$ W3 L9 `; ?4 E3 ]. O1.上传Con.pdf.txt; x! ~8 l, T) |! I ~
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
1 b- C' R5 k+ Q6 a5 n( e% }& e8 X
; z* Q5 ]5 W4 H |