感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文: V; H1 n9 l0 P, |6 j9 a6 |0 V
+ i' X5 p$ Q+ D4 k1 G原帖:http://club.freebuf.com/?/question/129#reply129 p- G3 t7 n& e/ ]2 j
- h' b! n/ x! O6 U$ x! C5 a% U) z aFCKEditor 2.6.8文件上传漏洞
& }; ]' C! j6 }* Z0 Z/ L. D/ f* D. Y5 }0 z8 b
Exploit-db上原文如下:
A" Y3 V. z' \) ~4 h
" U+ y6 ~' B0 P2 K+ n( H- }% F- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass6 n* Y; N4 z/ A: M
- Credit goes to: Mostafa Azizi, Soroush Dalili
# l4 K$ f, B7 {! ?7 A7 @( e [- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
8 l a4 K& T7 o( E6 k( h; O- Description:
' b# T& A# E& g% `( i6 jThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is9 p$ u$ B, I1 v( N% E& B
dealing with the duplicate files. As a result, it is possible to bypass
b* L/ T3 G; y5 ~the protection and upload a file with any extension.
% ]% n2 o ~. y/ i0 T6 s- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/% ~; P. o% F+ v* B- p; Y
- Solution: Please check the provided reference or the vendor website.' f& U' o# G9 s% Z
" W/ P: i7 g; y! ]$ }. V) [! m- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720- c' b0 \) u; b6 E' o" ? ?+ K2 V7 {
"
# [3 g8 M& q y2 {# `2 tNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:1 O3 ~7 f- V6 V3 ^
2 ^5 z, s# c9 n+ |* r8 H8 I$ D" {
In “config.asp”, wherever you have:
8 g3 I1 j* S: b# t$ \: {# Y" I ConfigAllowedExtensions.Add “File”,”Extensions Here”0 \* J2 h3 q. J2 X( r
Change it to:9 [6 @1 I! k) `) b) U4 D$ U
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:
0 ?- Y3 v d$ S$ C% \9 S& B9 r* t" n+ ^! r1 @3 x
1.首先,aspx是禁止上传的. b' [+ i% g7 J3 W* J1 W, I
2.使用%00截断(url decode),第一次上传文件名会被转成_符号
0 [& |( o5 o& E7 l9 f% v6 E: d( U; J& q
1 I$ ]4 n9 o, k Y
6 q3 _5 w: K- H# N接下来,我们进行第二次上传时,奇迹就发生了
2 ?- x, o" k9 V. p8 z2 H0 Q5 u4 Z5 _8 |2 v; n0 A7 J
# Z8 d: a$ w; L5 w3 c
- E' T4 u2 ?5 S- |1 A L& D
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html. f4 v# I8 g) G: B# P% V
$ a$ Z- ^" t# N& {% j0 k
: P/ ^2 J+ ]$ }( @
1 P! S8 F/ ?6 C& g9 U1 A9 ~0 pCKFinder/FCKEditor DoS漏洞% d a0 _, a. t( a( @ [" `
' f4 |4 g5 f( Y" z$ f
相比上个上传bug,下面这个漏洞个人觉得更有意思
' R( x9 J& E. }/ J2 w
6 Z6 ^7 r% f6 x) N3 l- S
4 U; f5 i g! S2 N* u
8 y4 l( ?: x( bCKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
7 }$ d5 X4 {8 K5 i; }# t9 l
5 c G, c6 ~% A1 ?- SCKFinder ASP版本是这样处理上传文件的:- L5 W4 I5 y* a0 \" T2 V
/ e0 s! S8 X) Z# z, }# j当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
$ W( x. a1 B, I( K8 X$ m" ^- ~, v
* M+ ~( n/ j9 k# f那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
. ~: ?, x9 P1 G6 _. n. u, C; g2 B: J
( a! Y" t0 M2 Z7 d& ]dos方法也应运而生!
2 u; w N, Z, R# r& [6 G
7 E# h2 v/ e- A( n' D
: y8 T6 X9 l( c- m! A" ^
! O7 u, F% i5 X1.上传Con.pdf.txt9 Y' C( B- q' U/ K. {
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。) } M) ~) u3 @! J% z
8 Q6 D% M7 f9 F4 Q( V4 W
|