感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
9 y" w' R7 ?2 i$ ]' B4 ? G9 ^; {6 E4 o7 c
原帖:http://club.freebuf.com/?/question/129#reply12
" j J1 r* {# V: [8 ?
- U+ ~- `& ?2 o+ U/ H9 FFCKEditor 2.6.8文件上传漏洞
4 }" c4 e- Y3 g0 L5 y9 o" c
8 m2 y9 y) Y, SExploit-db上原文如下:: X, m h% T* H! [$ L
) \' r8 ^& x# M- v8 d5 \7 f* Q- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass X( I% }! X1 V4 u' ^ x
- Credit goes to: Mostafa Azizi, Soroush Dalili0 a4 T$ M$ c! \# p2 g
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/* ~+ Y+ U5 b0 F8 x
- Description:2 w! O0 ^3 s! S" q6 ]9 u1 j! f
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is
9 Z5 R! X4 W, `& H* {; Wdealing with the duplicate files. As a result, it is possible to bypass
2 h4 ?8 `( y( ~! E8 A1 d( d! Ithe protection and upload a file with any extension.
& u0 H8 W6 S. l% N- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/; h7 p% r& n9 |3 o N
- Solution: Please check the provided reference or the vendor website.* O3 F7 m7 d* n- x7 G. H w
+ t1 O( A$ j; G0 S" g1 z% J
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd7202 t2 A, u9 l; m$ J# q4 ^+ K
"
/ A$ u! S% Z9 N) m' K/ T Z( uNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
* @! @3 n9 B, O2 z) Q9 x" z% o- |! }
In “config.asp”, wherever you have:5 L6 U. p9 ^ S8 M4 U
ConfigAllowedExtensions.Add “File”,”Extensions Here”" _, G6 S' T" G6 q
Change it to:* ?5 B. m3 ]& e5 t8 D* m: n
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:( e% V, `+ X( O( o0 S+ W1 _
, l" V9 S; O/ @) n5 n
1.首先,aspx是禁止上传的0 S8 }+ n4 ~0 n* ^! {
2.使用%00截断(url decode),第一次上传文件名会被转成_符号
! |% z9 z% F3 M+ q* P5 q2 R& W$ e) z1 J4 B6 |2 B& L
2 m0 L, h( L" t/ o, g0 C z: H3 B% ~# N( h- x
接下来,我们进行第二次上传时,奇迹就发生了
: \" B8 b: ?. k3 I0 z6 j
4 {; f7 B$ I5 k0 `! K* a# I" v6 y9 Q3 f$ S, x/ t1 g
# O" `: ]% _5 @3 S代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html2 G% S/ Z! N, D; J8 G
" s- `% h l8 A; H0 c - b t7 _# ^- S3 d" b
& k8 i' K( Z. e/ K& z; a% TCKFinder/FCKEditor DoS漏洞
) J& ?- {& ]3 u/ K, z, S7 R
/ A8 D1 E7 O+ L V8 }2 M8 x. B相比上个上传bug,下面这个漏洞个人觉得更有意思
! Y" j9 P9 H* A3 N5 h8 [2 D3 ?: K' U& b, ^( y
6 i! n1 I) `1 ?& e0 m$ n% _% f+ e7 k. e
CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。 4 K8 r8 `; o2 q* j
8 y. {2 U9 |( n# ^+ d9 PCKFinder ASP版本是这样处理上传文件的:6 s) Z* S" b5 v7 O6 A1 ?4 k7 _4 @
/ u# u; r# a& f. `' ?当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
* z6 b8 N7 R. I# I' t* G
2 J- k4 N4 c( {那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)# j( A! I( o- w* f- `$ [2 \3 r
; X0 I6 b2 G' J5 w' j
dos方法也应运而生!7 G; R. W% T1 x" L' R8 P& b
; \ ~: @$ L+ x ; |: s3 V6 R- x- x4 O& \) r7 ~
' h5 i% \" s$ ]5 m( E' L% [
1.上传Con.pdf.txt
6 I# W6 z$ j5 A0 M2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。
/ K9 V8 f+ U P! P/ ~& u8 e) \" k2 G5 x8 ~0 Y2 O
|