感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
' c: @) ]/ d2 J6 U! L& x
- S6 s- z; |5 Z$ l; B8 V0 ?3 ` o原帖:http://club.freebuf.com/?/question/129#reply126 y: \8 j2 V7 |, e) L" Q1 L
$ u. m, J" ~- b. j- H' r
FCKEditor 2.6.8文件上传漏洞9 q( D: ~4 j" c9 s6 {
& g6 H5 H# @* m6 @7 I/ ]
Exploit-db上原文如下:1 {& s! q: f4 m# @9 _4 o9 `
# _5 z/ f+ P9 N q
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass- u" d- @ n' I5 X
- Credit goes to: Mostafa Azizi, Soroush Dalili7 ?/ e; v$ E7 Q1 ^2 Q
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/5 D# @- `; j4 ~
- Description:# R6 |2 E) C2 e
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is% x/ e3 f5 |3 V9 o
dealing with the duplicate files. As a result, it is possible to bypass) q/ F) ]) `) q* m2 ^1 ^
the protection and upload a file with any extension.8 e# h/ p- @3 p3 j( N: X$ J
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
# F) n# b/ U: Z" s7 l2 k% o- Solution: Please check the provided reference or the vendor website.3 b8 U/ }! v" L6 c0 b9 `0 I0 ?
6 b( ]# Q8 t8 B# ~
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720
+ p+ w% N- {( z2 x", J* h% I* t y- m& Y
Note: Quick patch for FCKEditor 2.6.8 File Upload Bypass:; Z- k0 t2 Y/ v0 p) u* r
9 I8 T% L1 K1 ~2 N$ h& C
In “config.asp”, wherever you have:9 w; Q. _" _3 v
ConfigAllowedExtensions.Add “File”,”Extensions Here”
9 @+ Z) w; b) X% \9 KChange it to:8 Y4 F" P9 {! [1 M
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:) }. B/ I; P5 m' r" }
) B! R: j# Y- U3 F5 y* o1.首先,aspx是禁止上传的- o f3 L6 X8 ^
2.使用%00截断(url decode),第一次上传文件名会被转成_符号" Y' @4 b$ C) K
$ d0 C; o; @8 ^+ H+ Z! l7 x6 \+ p8 P
6 \3 _( ~( g6 G5 d9 L- _接下来,我们进行第二次上传时,奇迹就发生了9 x% ^4 l( B0 M( O9 ^* c
: n8 T, s3 G6 a; }4 M
2 s3 z4 V: p( f
. e2 _, A0 W3 x G9 x) g( G% u( j代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html/ D; s; Y' [8 f7 V
9 s; p h. o# w4 K9 z4 I/ w! k
2 \# [0 R! \9 Q+ `
( ?: z1 Z1 ?: `. T* h
CKFinder/FCKEditor DoS漏洞
( f2 B4 i% q6 q4 d7 x4 Q( b8 q( ?' T% a: w* S$ D
相比上个上传bug,下面这个漏洞个人觉得更有意思
4 F+ f& O( b+ q- K9 H" t6 d
7 t X( N5 T3 C! Y6 I2 b, `8 J
1 L$ ], q& l6 I+ n0 R
% ~/ o+ t; m1 h$ x& e, x8 rCKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
# c! C3 R1 X( _. s; S9 `9 G: _' ^; y% Z$ v4 X2 U
CKFinder ASP版本是这样处理上传文件的:
/ |4 V- `0 |+ u1 Q( ]: T, X' G. o1 t$ Q- S; S% F; @1 F$ K. E0 _
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
+ B; M0 ]7 U2 T- W- B$ o0 [& W" c
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)) W6 i0 I5 f9 D* C$ y3 x/ {9 J
' K; s0 _& F0 y+ W vdos方法也应运而生!
5 o9 ^' d! C( I* { m6 y( A ^8 I9 H
& U6 U* `4 x5 Z; b! l0 B9 t" \/ z6 J
4 n( q9 y1 Y9 _1 ?; J
/ ^- B( C8 p& ]2 ~4 W% M8 B" \. D4 Y1.上传Con.pdf.txt* d4 a* `5 `. H. i* l6 r
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
; H0 T; L4 S1 c m$ r* x; X- D9 S- h V/ t1 C
|