感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文( |( D' V8 w8 @: u, \- P
/ e$ K0 T! R* [: ^+ d; D7 q8 k原帖:http://club.freebuf.com/?/question/129#reply12
" u& |* C# k- D" J1 D' w! l, a1 R4 k+ e4 }6 K0 b
FCKEditor 2.6.8文件上传漏洞2 P# `2 g8 }, m+ P1 _2 p/ N. w
: T* |8 n; V9 @! F$ f0 f( f
Exploit-db上原文如下:4 m2 @# l: T9 s v- G
) ~) b: D: ?/ U9 \
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
+ ~, d d1 {/ L2 A/ N- Credit goes to: Mostafa Azizi, Soroush Dalili
6 w% `" \- p. W, F" [, e: b- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/% K& w$ \6 o; d2 ]
- Description:. o3 y7 l* j; _7 o4 f& K5 T: j
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is
{) _- x2 Q- @7 s- a5 tdealing with the duplicate files. As a result, it is possible to bypass5 t/ }9 w& S4 M5 t& i; X: l+ R0 l
the protection and upload a file with any extension.0 ^( o$ O9 v! k Z/ N
- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
& `0 l' I( z4 Y- Solution: Please check the provided reference or the vendor website.
' s A% Z& t7 h" D" G6 y0 d8 ~- L0 |+ n7 w5 [, N; T7 \
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd7209 q, E" s F2 }* J& m5 y! Q! q( e
"
9 k8 Y. q( ~6 oNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
" o7 h9 d2 n4 w, l& n5 e; Q. @) y1 ^0 e/ O6 J
In “config.asp”, wherever you have:
7 i. W2 B. {5 N6 ]$ z' u1 U( V2 Q ConfigAllowedExtensions.Add “File”,”Extensions Here”) h. y8 o4 b/ b& D1 _ ~
Change it to:
% ]/ Y2 `% M$ T. ^5 w1 o; ` ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:8 J- t7 a1 P& m7 H- S
# ]- Q9 a/ j2 { H$ M1.首先,aspx是禁止上传的
% Z( x2 ~. M' o2.使用%00截断(url decode),第一次上传文件名会被转成_符号4 @5 ]3 w% C+ F( D6 {6 \0 K0 g b
! g* @. P F- R+ m
+ u8 Y6 H, D3 k4 u
& X7 I, N' [8 |1 R( u, C
接下来,我们进行第二次上传时,奇迹就发生了/ E& x9 ]/ }1 _5 m+ A/ Q- M, A
6 \! Y( ?7 ]$ O5 }$ A* |- Q4 J" j9 C" A0 t5 A% h! n! W7 g
4 @/ L/ ~+ x; h# H) E# C代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html
) w; M; F9 A& Q8 Z& r1 M' F6 O% Y
8 J/ K/ |+ {: Q% w. h- Q x
1 }. X }* ^7 E' H$ P6 l4 l# j1 |, ^8 [- p
CKFinder/FCKEditor DoS漏洞
1 I. o0 ~* g8 o/ c1 i! e1 l3 K; i8 ?
相比上个上传bug,下面这个漏洞个人觉得更有意思
9 x. B( _- D& Z+ \/ }/ `2 P* ?# I& z1 ?+ J( [+ k7 @+ x9 Z+ s- A$ E' J
$ \# |$ J! V2 B- R' ?% K* a( k; l1 A* a2 m' @' C
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 . P! B8 k2 E, [% p4 f7 t
0 t+ Z1 d# s" O& ^2 a" `
CKFinder ASP版本是这样处理上传文件的:
/ K- R6 ?3 ~1 B: M$ t3 k# u& F! h2 {5 t+ l( t6 @
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
0 E9 Y2 Q5 e; p O6 c! g. Z, f; g) t8 [# H+ j6 m
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)" v4 f# W; A3 f( O" Z
9 I- R1 A8 `( M, A2 W% hdos方法也应运而生!" `1 G% Q# E( m% @
: i( p+ }3 Q8 c3 l& _6 w7 h
4 I3 B5 C/ d( `1 P+ R) e0 C5 r' C0 e, y, q
1.上传Con.pdf.txt
* h3 [( y- i) c; g- O* j2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。1 L" N ]2 Q3 e0 a
8 }4 o! ]/ Y; B0 A! h8 l! R
|