感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文/ i- A1 `/ a: {& r" S- ^
7 Y5 [/ ]; |0 m1 `& E: w) \" H
原帖:http://club.freebuf.com/?/question/129#reply12
; D0 i% U4 Q; W5 \$ l0 P' c: j4 F7 I, ^: K
FCKEditor 2.6.8文件上传漏洞 z" k$ L) |- B9 r
* H* x$ t' _" k! @Exploit-db上原文如下:! H2 R O: U& \
$ L& O$ S$ b! b- z7 F! \- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
, B0 U4 _/ o& X& @* E' E2 ~- Credit goes to: Mostafa Azizi, Soroush Dalili
2 V7 A; k9 H. D1 r. U9 Z$ X- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
' J4 m7 c# O1 x" ^* n0 v$ Z" D- Description:( \/ B! e/ G+ s( C: E, C
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is# L* m$ n, s: u
dealing with the duplicate files. As a result, it is possible to bypass
" @& Y" e5 ^( `9 k9 I- d4 C! h; Kthe protection and upload a file with any extension.
6 h% _8 N- B. \& x- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
0 d' w$ {4 b$ h7 J( J- Solution: Please check the provided reference or the vendor website. U; a6 j% J# Q2 [" v, |/ Z1 B0 J, s
: Z: J% K/ K2 @- i) X ~- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720) I" O+ k& r$ Y" O' ^6 P
"
* v; U) g7 `3 B% }4 E9 P' DNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
: x/ o: j+ C/ x) p8 I8 o1 f- D% R. ?
In “config.asp”, wherever you have:2 _5 U! T) r5 ^8 O" I2 m2 i
ConfigAllowedExtensions.Add “File”,”Extensions Here”( L! u- [% b4 K1 K. A4 M; P
Change it to:* C' w6 t5 S+ L$ F* [$ v& ^1 l5 d
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:
) l$ A1 z+ Z4 R* g2 t7 A, Z
, H) {* f( {6 [( S; I1.首先,aspx是禁止上传的" H# T- E+ h9 o% M) G$ L
2.使用%00截断(url decode),第一次上传文件名会被转成_符号
. C& G$ o+ [9 i* j
/ H# |2 y: U& b3 d6 @, L5 y! U! y, c8 H5 ?
$ E/ h; E2 F- g9 g0 n6 ?
1 V8 Y: [9 k' O/ T接下来,我们进行第二次上传时,奇迹就发生了, ~+ S4 k) ?: Q, S# a3 V
6 R5 z3 ?% w K. D$ M
( o) n/ J' p0 D7 M9 v( G% ^; [: M, ?& k
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html4 R( c% X: m2 C# p0 i
7 w9 j/ M. \ _$ b . I# I& j& W' u! C& g
) e( M2 ^+ R1 ~2 T# n5 X- XCKFinder/FCKEditor DoS漏洞
( {- A% Y; H; V' k1 f* k" Y9 S5 t4 A, [* M# j) p$ O9 p
相比上个上传bug,下面这个漏洞个人觉得更有意思
& \$ u" x* {. |
) v/ K2 z3 R. O: T; c& c* I% `2 P9 y* {
/ L1 i7 G+ g# b5 F! h" z
I' J0 D/ X8 \, bCKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 $ C3 n/ b7 |& M6 \$ ~- L
T' y2 ]! H z& t# UCKFinder ASP版本是这样处理上传文件的:
8 C& t( |" p" x! G! U; g3 l2 z5 H _, U3 }
当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。( e s( c+ h o3 |" {; y" _
" B4 e# _% h) r2 O5 r0 O) v
那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
9 c+ d: |: P2 ^' l8 _# ^" E$ W* M4 ^0 L& e8 H, C& \
dos方法也应运而生!
0 k0 i$ w$ x9 P5 f: d5 @7 }" n1 S6 s. I" M
1 {0 w7 h; B$ g% `1 T) `2 {( ~! W
* d+ J9 w1 b% g+ u' g9 @) u1.上传Con.pdf.txt
% T' E4 s" ~' t& x. [/ M5 ]0 k0 A2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
' M* J+ k( P. q
- {3 v. [6 r1 m; q0 n! a( J# Y0 A |