感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文7 Q' E% S7 ?/ p* c5 t/ |( o/ f
3 s: |: P6 f' L6 R: m
原帖:http://club.freebuf.com/?/question/129#reply12
7 [! e3 P8 ~, v# d9 Q
' a) r+ p- I; lFCKEditor 2.6.8文件上传漏洞9 P) R% G( t* p/ ?/ q: ~
8 @# g, E+ T6 o# K6 ]2 W- R$ D2 j: n
Exploit-db上原文如下:' ]/ E8 l5 ^* U
3 o3 U5 s. f4 t8 L& `9 f- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass0 p4 Y/ o. I/ o3 G) V1 k5 I
- Credit goes to: Mostafa Azizi, Soroush Dalili
/ t. J, }+ n. W; s- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
+ |9 L& \3 b$ Z$ x9 i5 q2 ^- Description:
; s% A# {! P& @" o2 E+ rThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is4 q: }* d! f* T9 U5 r
dealing with the duplicate files. As a result, it is possible to bypass
) i- Z+ r' P8 [6 Sthe protection and upload a file with any extension.$ k- Q5 ~# i$ Y+ U7 u
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
0 _0 V9 g }8 n3 F+ n ^- Solution: Please check the provided reference or the vendor website.
1 Y4 E, z% h% y
6 ^- V: I. v) c/ d8 C- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720
: C: `+ Y( M. Q, J8 X, `"6 ?( `" z; a/ R |+ P7 a' w+ X9 z
Note: Quick patch for FCKEditor 2.6.8 File Upload Bypass:- \/ t5 z) z) m( b- W: M ^6 [& u
: c8 ^* j: Y' ?/ b; l$ A6 `In “config.asp”, wherever you have:
4 s& @4 C& `, d" R- {. R, d6 z ConfigAllowedExtensions.Add “File”,”Extensions Here”
2 |. H7 x* S& B# R7 I# ]' T2 fChange it to:
; P$ \1 F% k1 \- l4 y ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:
4 q* F6 B, f8 j# T
2 G. L. m/ O+ e# N1.首先,aspx是禁止上传的/ g' _* @ D$ G9 F7 G) j# s6 ]$ J# l, O
2.使用%00截断(url decode),第一次上传文件名会被转成_符号
% U4 _5 m3 p1 g4 H6 R- L5 ?& _" `9 A. { n! x
. X) a0 J' f$ E- B2 H' m% |8 {; p( y0 F. W& i2 y8 ~
接下来,我们进行第二次上传时,奇迹就发生了. t" |7 U# S+ J/ N; Z! x
: x ^4 s s) y: j! n8 _1 i+ ]- E! O( g6 H
, @( V" f7 ?& h9 B+ ?" {" {3 b# B- |* T/ p
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html- Y9 p3 N& H+ J. F; ^( t
5 h1 R2 h: G% V5 U6 r 4 o, R9 a, i+ }, y1 w
' F! h& p* D$ T: ~6 G8 bCKFinder/FCKEditor DoS漏洞
2 E" j& u# L/ e/ m# X3 G# U, d
% j7 [! c; f/ ^9 S- p% h$ @( M/ ?! x! U相比上个上传bug,下面这个漏洞个人觉得更有意思+ `$ n* n; @ ]' s3 o- J
: f# _5 ]* ^( @- W* K6 G/ V
0 L! e' \5 L# C) F5 X3 S- L' m& n- v0 N6 N
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
$ T9 J1 |4 k4 A8 I( _# g# K
, X) K5 k9 N: H6 o/ z- |5 nCKFinder ASP版本是这样处理上传文件的:9 X; m8 y1 Q4 O% X& j: E( Q* }
# i t& h3 n ]/ m当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。8 l4 i( \1 s# T' R' @$ ~ C
9 G6 @1 g# j" J9 L+ G
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
( `$ ]- k/ e2 |, F( ^- D9 D$ p
/ K* t! R8 R+ ^1 ydos方法也应运而生!
5 d* R# R; A4 e: [7 N
6 ?" Y S( J: y
j- L. q1 R" c8 g% U: C6 U8 m
9 u1 y0 a# m/ u" c1.上传Con.pdf.txt7 t4 j9 J; K) r J8 M R
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
3 G5 R. G, k5 h$ x, p. y4 B, ^; a0 h! @# `( Q @7 f+ F
|