感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文
8 G$ C4 R0 o" |' Z; L- d. k1 O# e S: d, `0 K( b- u0 i" g8 F5 ]
原帖:http://club.freebuf.com/?/question/129#reply12
/ H9 e" ?+ ^9 _9 n3 I9 i
7 U7 Z x+ j b/ RFCKEditor 2.6.8文件上传漏洞
8 c: K+ N0 T. c' b, V7 \4 [, _; R( W( P1 M( |3 t$ X/ k% [- Y
Exploit-db上原文如下:4 N! _& M; k7 j7 X
9 d2 {+ q6 ]" r# Y
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass" N+ [. V( z- f
- Credit goes to: Mostafa Azizi, Soroush Dalili$ A+ B. ?5 J: f" p" L. \; x
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/' M. n! N' n( ]" v4 N7 v9 U
- Description:8 r" v3 Z7 F6 d& e2 c. E
There is no validation on the extensions when FCKEditor 2.6.8 ASP version is% n% P: f1 w; s0 I
dealing with the duplicate files. As a result, it is possible to bypass8 S2 f. ?3 L( ]' o7 ~5 _+ R e. y( l
the protection and upload a file with any extension.
, f0 ]( t0 {0 I& P- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
6 D" B) c' }: _- \$ v. q [$ D- Solution: Please check the provided reference or the vendor website.
( i+ b( }- S# x" L3 w1 ~. |4 C
2 ~ D8 l8 D) Z7 _+ h: X- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd720# S2 I8 O0 ]* s! [+ Q( o# I
"
5 @3 O' i Y, H2 Z" B8 d* @7 NNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass: E" N o# H- A8 `/ m$ M# T
1 ^6 Q. [9 s# U/ ]- T! Z9 eIn “config.asp”, wherever you have:/ G$ _$ m$ z5 Y; q* u t# g9 Q
ConfigAllowedExtensions.Add “File”,”Extensions Here”* j' q' \' M; t) v( [8 `# n
Change it to:
9 h! m) N) H% {$ N) L9 m) R4 z, s* | ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:
9 `5 m8 R! K/ ]8 Z6 F' E0 ?( ]- r
" Q* x4 Z& c' \! x$ \1.首先,aspx是禁止上传的' G% c* Z0 t& {: S& D- K- J
2.使用%00截断(url decode),第一次上传文件名会被转成_符号
- v' a! k! C: {0 K
7 {. z$ E5 u) {! ?: E% ^* K
$ t+ B8 w* E8 `+ ]1 k# r' m" W( B" q
5 j) U6 Y4 ]/ Y+ B接下来,我们进行第二次上传时,奇迹就发生了" B+ Q6 `+ I/ j4 Q' z
- I1 L- L4 Q8 n; j
- y' N5 F2 I( x7 o& v% Y0 v
( J1 M% r0 G6 e! e. `8 c代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html. Q; S: O6 I3 A1 o- q, Q
, S3 c$ K$ K+ H1 E( Q8 k
3 b' O9 H- f: @' E: [) Z
( y" x4 V* n0 ^2 f+ M2 q o
CKFinder/FCKEditor DoS漏洞# A7 j E1 K2 q8 H7 Q! @, i L( }
& b# J& i j' z$ C
相比上个上传bug,下面这个漏洞个人觉得更有意思
2 R% d1 r1 S2 s+ c! l! {( ]% s6 o4 f% g9 g, [
: |: \% }7 A( ~
6 I( b' \5 |4 _# R) J$ lCKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
1 u' D/ {4 g9 N, [
" i& r/ w" ]) UCKFinder ASP版本是这样处理上传文件的:
4 {3 b2 Y$ k# I* a$ Z
$ J$ t3 Q% I8 y& z$ i& n当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
2 ]$ f5 I9 T; M" x. k" S* S' d
8 Q7 l& I6 j9 b) \: y) B那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下)
. `# `8 `' h$ H7 c; h. O% j1 s" C5 [- L# R
dos方法也应运而生!9 n; U8 i% X+ }
" b: t" \! n, P$ q$ U( y
- _, x# P8 C1 w0 M% n( [' b9 m' x
( w# i$ W& y/ n2 K% S/ g1.上传Con.pdf.txt
( s% z" U n Y& Z6 p( _5 m2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。: d9 z1 ~9 g: C W) W8 p) q. R
. a4 R( a2 f6 G5 E2 d
|