感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
% |- P8 a2 M. d+ ]) S' ] A
* C" j2 M; A, ?原帖:http://club.freebuf.com/?/question/129#reply125 c! a7 d* C" e) g4 R2 N c9 w
/ O) I( t, i. r( g& x S
FCKEditor 2.6.8文件上传漏洞
$ }0 m3 `4 Q% A4 h0 U* t
1 z% }) K K7 u* D$ M- F( C6 P4 q/ HExploit-db上原文如下:
* d, x( }9 w' C1 G, r' ~
8 }" E. Z- d2 C& Q j9 w* m) i1 V' G9 B- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass+ E$ u' z F% n, V
- Credit goes to: Mostafa Azizi, Soroush Dalili9 R0 s& x2 T# h! d) S( a
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
1 O+ y# M. c8 |# @3 z! Z- Description:; @9 D; m- B* J3 L) A, q' ^
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is( D3 \# N" e% t2 {5 \
dealing with the duplicate files. As a result, it is possible to bypass
) Y+ F7 V8 C7 T$ Othe protection and upload a file with any extension.! J; V& W$ Q2 d" {
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/3 k1 y# u! m1 _) Y6 E/ e8 b
- Solution: Please check the provided reference or the vendor website.' }8 a. X" w! m% h
0 [% K) A, J( ] r P' c/ L& N/ y- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd7200 l' D. O2 Z# {* [: q" x' l Y
"
8 G( Y2 D' ~2 F$ ~ ~Note: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
, w* n) m- x8 R( G0 Q# O v9 o% G
! F& F2 v: u$ f( V zIn “config.asp”, wherever you have:8 x; M$ I% V8 O) H. s6 b3 ?# G. {
ConfigAllowedExtensions.Add “File”,”Extensions Here”
2 u& w! u& d7 v X% zChange it to:
: O9 X9 l- \( L0 q# m- p ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:, u; L3 D) z6 N3 L
: ]1 S" \& P- Y! G1 ~ Q
1.首先,aspx是禁止上传的
- C( I0 p# g0 `. h+ {! a5 {2.使用%00截断(url decode),第一次上传文件名会被转成_符号
% b5 v% X u7 G. |. V" _
4 Y; E. u2 _" I+ v, `% |3 v0 u+ K' n T% h
% Q. |5 ?4 L5 @; q
接下来,我们进行第二次上传时,奇迹就发生了. g- y5 o7 s. t9 _6 U
- A& O4 d5 Y$ W7 F: p2 H- H5 o. ]6 N) V
) v4 p3 J- `+ {- |/ X, G: J; i6 v
5 y: L* g# ^7 S, @, b/ {代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html
5 n U5 e9 v, ?3 E
, P6 D% a: r! s2 _: M
, v: I+ q7 l2 s# O5 g. P0 D
& e6 O# a9 o* y! J7 G/ r4 lCKFinder/FCKEditor DoS漏洞
6 ]8 U* h/ K# m5 c, X2 Q
; W( u( ]1 L6 f0 j# C/ `相比上个上传bug,下面这个漏洞个人觉得更有意思
" \5 J- G4 t: k Z, ]
/ s( _/ E0 o2 q6 B- O. S
5 q* ?# c/ V8 d) m
2 t" ^6 e5 P+ Q+ g+ {CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 ( s' Y. o% i2 q, Z, P( o. c. @
6 ?1 ?6 I& p9 u, ^
CKFinder ASP版本是这样处理上传文件的:' V* _5 X. s% e3 r5 T# m5 P; }
5 ~3 D7 e5 a+ d3 v
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
* l+ K7 j7 k6 a3 B4 g) T6 m
4 w8 P- {4 w4 H. Y那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下). |" n' o, p2 b( [9 \
$ H+ Q( @8 _2 x J ?& Pdos方法也应运而生!
- a* T; Q5 v1 N. u8 A
1 E* D p6 C. Y/ d 6 [! Z- z0 i$ B3 S
/ P$ R4 Z; \: v$ r. ?9 }
1.上传Con.pdf.txt
4 L; }4 o# [# e& R; D, a2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
8 \) X- Y) k6 y$ U7 ~' x5 b- b( c
|