感谢生生不息在freebuf社区”分享团”里给出线索,才有了本文$ x! G- O# l1 U6 s5 W, i) E
4 e- ^' ]8 c" t
原帖:http://club.freebuf.com/?/question/129#reply12* ]3 d4 F8 i w: q
" ]3 Q% L/ o/ ?$ Y xFCKEditor 2.6.8文件上传漏洞
$ M' Z. @/ h2 s% f
" U" F: z$ X! j) L* }0 AExploit-db上原文如下:: c9 B7 W8 b$ T$ ^$ X
, [% J) i- I a" Y
- Title: FCKEditor 2.6.8 ASP Version File Upload Protection bypass
: d; ~% T$ V& F a( O& \7 G- Credit goes to: Mostafa Azizi, Soroush Dalili; C! N+ y' |' F" R5 ?8 I
- Link:http://sourceforge.net/projects/fckeditor/files/FCKeditor/
9 q) v1 _. _# ~( G% b- Description:
3 y- K: p( O/ bThere is no validation on the extensions when FCKEditor 2.6.8 ASP version is
& F+ z/ P( O2 v T" P+ edealing with the duplicate files. As a result, it is possible to bypass
- }# h+ B6 v: K( v7 jthe protection and upload a file with any extension.
( o7 [5 m( W) ]+ s% h5 K& `* [5 H- Reference: http://soroush.secproject.com/blog/2012/11/file-in-the-hole/
* R/ ^& ]1 V6 t* a- Solution: Please check the provided reference or the vendor website.9 |3 y3 N2 }- ?! v- I7 l+ G% v5 K* b
/ C9 g: ~6 [! t( [' a% v' s0 w
- PoC:http://www.youtube.com/v/1VpxlJ5 ... ;rel=0&vq=hd7200 X: A* G% A' g1 t9 p; r
"
: I7 u7 T7 L& x pNote: Quick patch for FCKEditor 2.6.8 File Upload Bypass:
' q V, H6 P! z3 F- v) W* M. a0 u5 d" q5 L: I6 r: P& Z
In “config.asp”, wherever you have: S8 N/ S1 W8 s% L
ConfigAllowedExtensions.Add “File”,”Extensions Here”* c! @# D; g8 z& ]
Change it to:' M7 K" F* m7 l) N3 ?
ConfigAllowedExtensions.Add “File”,”^(Extensions Here)$”在视频(需翻墙)里,我们可以看的很清楚:6 B* U; a2 Q1 `4 `3 [, b% T
* Q" q9 i f6 P1.首先,aspx是禁止上传的
9 @! n; a6 I/ P; L( b7 q( d7 [2.使用%00截断(url decode),第一次上传文件名会被转成_符号. ^3 L+ v/ j8 B' L. K. G
. r# q: [ \- ^( h7 f; d' q* y
n0 g- ], @+ j* E7 t1 T, v7 T+ S# O5 H6 z( l
接下来,我们进行第二次上传时,奇迹就发生了
; c# ?' z& N1 U: K8 A( f- @) Y$ y0 K- m+ L, P7 a
; K: C0 {! N/ B* R( b5 t I/ }! f
# [+ S' ^$ V# V3 P
代码层面分析可以看下http://lanu.sinaapp.com/ASPVBvbscript/121.html" L7 L* i1 A7 C( ^$ j! B
' ?% d; o! `% f Y 5 M6 \4 M/ i7 L' J: j
. p, ? V) |- F; W! cCKFinder/FCKEditor DoS漏洞
! h/ F1 Z- B8 h0 K, a
8 S+ r: ]0 q- D$ W9 U相比上个上传bug,下面这个漏洞个人觉得更有意思" O, M' V0 V( i, `! V6 [4 m9 v: ^/ u
3 _/ w( Q* s( W' w
4 w) {0 v) l; O# e0 p+ T7 O/ @
, K' p, _' o$ ?9 yCKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观,快速学习的各类用户,从高级人才到互联网初学者。
7 y- L5 U& i! p, I. x0 V9 o g; L+ ?% c! D- Y0 _
CKFinder ASP版本是这样处理上传文件的:4 h7 h) z6 g" c3 X# @: O X
- B. d9 y: H: O: f& _$ P当上传文件名已存在时,会进行迭代重命名,比如file(1).ext存在了,会尝试重命名为file(2).ext……直到不重复为止。
0 \8 l: t* q$ g) q8 g4 w2 w
4 D' E6 d+ x. Y, w) G7 Y$ u+ Q& q那么现在有趣的事情来了——windows是禁止”con”作为文件名的(关于这个问题我印象中很久以前,win也有过con文件名漏洞,有兴趣可以确认下), B4 B" h2 _9 g6 K9 }
; S" X- ?+ a- H8 x" G8 Xdos方法也应运而生!+ L3 S) M/ H5 G/ E
3 _! O; r4 i) N- f3 H) Y
! ?3 {( ?# [: O0 h: q9 N% c5 Y7 ~1 v) N9 R
1.上传Con.pdf.txt) I% e# E7 \9 r2 O( b# c3 M" {* Z0 D. |4 K
2.CKFinder认为“Con.pdf.txt” 已被占用,于是开始尝试Con.pdf(1).txt,Con.pdf(2).txt……Con.pdf(MaxInt).txt从而对服务器形成致命dos。) R8 A' }2 a: V1 V- e! I/ K" K
. x6 I2 y! R* f% I9 J" }9 j: H
|