感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
% i# {# w# z4 ]! J, z! q4 Q5 }5 P" r7 c% k4 R! B! A: x
原帖:http://club.freebuf.com/?/question/129#reply12
, S) B) U8 X1 c% p$ q3 d! j! j: A* R: l/ d6 o% q }
FCKEditor 2.6.8文件上传漏洞
! p- ~7 m2 T' i' g+ R3 W' \: B" K! b: a! _$ O5 i
Exploit-db上原文如下:
1 _. d8 H5 u) q" _% ]$ Z
8 Y5 u) w" R0 z3 w' }. ?/ o1 a- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
5 e! w" ^$ [# ?9 e& u( v" @4 s- Credit goes to: Mostafa Azizi, Soroush Dalili
' n8 o+ y* _5 Y) S6 N$ B9 D* }- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/! _7 P; f k5 L& _& n- }
- Description:
& m% F' C d$ {( R9 A; TThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is- G1 G! p; c2 x
dealing with the duplicate files. As a result, it is possible to bypass
. w9 e- A4 {2 r6 p8 G* I5 T, k) othe protection and upload a file with any extension.: q) \2 r x+ y5 t" x: B( c8 w6 {
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/0 h6 P! }7 Y3 L* d9 j
- Solution: Please check the provided reference or the vendor website.
3 R1 g* A/ k$ H$ p
) T9 B$ V2 o. v s1 k. W6 ^- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720
: ~3 X- l9 C& D6 ~) |; a! Y"
) S& \* `1 B+ A/ i' kNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:1 q5 W. P8 m; K; H1 h
, E' M8 s. H7 x1 M3 j) n( SIn “config.asp”, wherever you have:
$ M1 T0 T6 M9 p2 u$ ]# e! Z ConfigAllowedExtensions.Add “File”,”Extensions Here”
- i3 J% r- C& N/ C& I& y3 U8 n1 IChange it to:0 j! x3 F% S, d( R
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:
* r" I! q! z4 }5 h6 J# ^( Y7 _+ K- r' p# U" G. \$ |( ]' a4 r" E- S
1.首先,aspx是禁止上传的
' r* A8 Y/ J5 s2.使用%00截断(url decode),第一次上传文件名会被转成_符号/ c! P0 U2 j: S b( G
8 y( e# n8 ]; Q8 s% f
2 f1 Y4 E4 Q1 G( a( }: _* [' a) U _7 `- d7 F2 B
接下来,我们进行第二次上传时,奇迹就发生了# v2 {) U1 ^! q0 C
4 g' ?) I, G$ X7 [
" k. ^0 l4 A: {- q+ R$ a1 I. @3 k$ [% s. }7 @) D" b
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html
6 H% W* A4 u4 m' n4 L/ U% j+ e' a6 t9 Y: N
& S# @; x% `8 k: ]
/ E a# S7 J! ?+ h9 b7 N
CKFinder/FCKEditor DoS漏洞' I- w% W% j. {
& \0 @8 \ \' V% \相比上个上传bug,下面这个漏洞个人觉得更有意思
2 P9 z. V% p. m7 C
; }2 f6 s4 [& a$ W8 f . V/ F- N) U, R3 k( B# j4 s
, _6 Y. F% m5 R3 k5 P0 D G( q7 t
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 2 S7 O9 ?; q: E
3 p# B' p$ D5 |6 b& k* x* `
CKFinder ASP版本是这样处理上传文件的:
! o5 T4 F% ]1 P V; Y7 j
# R, K: W% N' K: d0 j当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。2 \; R; |( @- I+ S z
# ~& |1 B$ o* e! N0 l
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
1 i! O0 Y5 ~# Q6 J9 B/ h9 W* {# B" T7 }, A% [
dos方法也应运而生!
+ d$ Y( \2 K, D! E0 i# f
0 [% i% Q' p' E2 e1 z. O/ D
) a0 K5 \! z8 Z1 R# y, H
* [1 ~+ A: z& W9 k. D! X2 G& t; w1.上传Con.pdf.txt
; y- C# \( A! y: W' ^0 J2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
9 o4 E& B3 X+ f$ \' ^ a
d z2 y( A& u |