下沙论坛
标题: 论坛管理员来看看吧 [打印本页]
作者: 天外流星 时间: 2004-5-24 22:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: 煎饼 时间: 2004-5-24 22:15
谢谢你,请和我联系一下
作者: 天外流星 时间: 2004-5-25 11:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: edge005 时间: 2004-5-25 12:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: 我累了 时间: 2004-5-25 12:21
设置一下 uploadface 不能执行程序就好了
作者: 超帅 时间: 2004-5-26 05:55
没那么简单!直接把这个uploadface 删除了
作者: 我累了 时间: 2004-5-26 12:02
设置过权限之后就不能执行程序了,html没有什么用
作者: gun 时间: 2004-5-27 13:51
好象在哪本书上介绍过!
; R( s0 q! T0 W( ^! w3 k( s动网6.0 6.1 都有这个漏洞!
0 p, V/ c/ G4 R$ q- b如果构造下 javascript代码还可能会得到会员和管理员的cookie,这个听起来很可怕啊!
( ~' d1 W9 J/ R8 e" s2 {7 T+ h
作者: hzzh 时间: 2004-5-27 15:46
这个是动网论坛的上传文件漏洞
# m) G- q/ q# x. b# e9 j主要问题出在asp无组件上传的代码中,以下这一句上
( l8 f1 P5 f$ U/ Y3 Jfilename=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt
- d+ m- j( p/ I0 h9 ]+ z+ k这句话将一段字符串合并起来,生成保存的文件名filename,formPath是表单提交的变量。
7 K8 A9 l! u2 ^# s如果设法构造formPath:在计算机中检测字符串的关键就是看是否碰到'\0'字符,如果是,则认为字符串结束了.也就是说我们在构造上传文件保存路径时,只要欺骗计算机,让他认为类似"uploadface\zwell.asp"这样的路径参数已经结束了,这样,后面一连串的时间字符我们都可以不要,从而达到直接将文件保存为我们定义的文件名的目的。
& i' u. L5 r# k/ K因此,在构造的POST数据包中,将表单中的filepath改成类似uploadface\zwell.asp'\0'的字符串然后发送出去就行了。" f$ }( X: e' ^; Y R- d
也就是说,恶意提交的formPath中只要包含'\0',filename=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt语句得到的
) W: f3 {0 l$ ]# n. Zfilename就只有formPath了,后面的&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt部分都给丢弃乐,因此可以随意生成.asp等文件了。4 A6 ?2 X$ f0 q/ q$ ]; S9 V, n
解决方法,我想在filename=之前,先对formPath的内容进行过滤,把'\0'改成空格什么的,就可以防止这个漏洞了。asp我不熟悉,不知对'\0'检测用什么语句可以
2 n* Z& o4 A$ |& p/ o/ ~关于这个漏洞的详细说明,见http://www.xfocus.net/articles/200405/700.html
1 c7 q! c$ |6 h' {( J
作者: 雨中蝎子 时间: 2004-5-28 10:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: yzhlinux 时间: 2004-5-28 17:55
呵呵,一个不大不小的漏洞,不过这个也不是用javascript可以利用的,要写socket程序才可以利用。
作者: gun 时间: 2004-5-28 19:26
呵呵~!
! E& B+ V- x" P, V0 W
+ W) g5 ]+ g" u3 U这个问题应该说比较严重!
2 y6 r, k" @0 o$ o" x
5 b! ~+ @+ g0 X) Z稍不注意就会泄露cookie,被人利用!- L5 W3 O+ X% D8 C
0 b' b; r8 U0 Y/ q+ R1 d
* K _+ V6 U9 Z9 @) a[此贴子已经被作者于2004-5-28 19:30:37编辑过]
! Y3 ]8 n$ J" U) Z9 \6 q
作者: hzzh 时间: 2004-5-28 22:03
以下是引用yzhlinux在2004-5-28 17:55:55的发言:& |) V" C# v2 v/ y
呵呵,一个不大不小的漏洞,不过这个也不是用javascript可以利用的,要写socket程序才可以利用。
# C; |# o3 |0 _( t/ G9 h! r' Q. `; O! B如果先用sniff软件抓出正常POST数据,稍作修改,保存为aa.txt
' ~% ~% H- F8 m# L# n然后telnet IP 80 . ?/ [7 L; r6 p- |5 e
就可以利用这个漏洞上传文件了 ,不用编写程序 ^^)3 D6 T' p) m! G: D0 p5 t6 U! i
; l# D0 y5 T9 L
作者: 我累了 时间: 2004-5-30 16:55
找到 post_upfile.asp、upfile.asp、z_visual_upfile.asp、NF_visual_upfile.asp、saveannouce_upfile.asp等上传文件(包括所有插件中的上传文件)4 o# s* t7 P* N9 s" X! c0 `
5 i( o8 I+ s3 Z# G6 l. J$ {
查找文件中的代码:
R+ p- S% ]+ P6 D. \8 u FileExt=Lcase(File.FileExt)
8 H6 f( ^2 u. U, c3 U2 t '判断文件类型
; b! _/ Q% U& Z$ Z; Y) \ If CheckFileExt(FileExt)=false then) E' i" t1 ^, k2 E- D
Response.write "文件格式不正确,或不能为空 [ 重新上传 ]"
' G6 N# F5 g4 U! k% w+ k+ z EXIT SUB3 f. v8 U" R! A
End If1 A/ R& A0 f; H' G" ]8 w
( n6 W) I `6 ^1 z- {
将其中的
& Y3 y; G( @7 h( a+ b+ ?FileExt=Lcase(File.FileExt)
3 C8 S' w3 o0 C1 m
3 H" i/ [! i( K替换为下面代码:; R& I/ m7 J2 [- |0 P3 @
& T' k, T1 P+ [: M' F9 Y N
FileExt=FixName(File.FileExt)3 M9 h5 m- R& Y
6 ]: ^( ?" L4 B7 {formPath= Replace(Replace(formPath,Chr(0),""),".","")1 Z, j5 f; J2 w6 r: ]5 @% ]' T
$ k3 e4 o4 \5 c+ O下面的代码放在asp文件的最后 "%>"前+ P) e5 o5 u( S# w2 r4 |2 y) s
Function FixName(UpFileExt)
2 a) E7 w w" hIf IsEmpty(UpFileExt) Then Exit Function1 z+ G2 |% X5 }1 n4 N5 z+ b
FixName = Lcase(UpFileExt)
i1 f, u: d9 x6 UFixName = Replace(FixName,Chr(0),"")" y1 G+ J$ w; U0 P
FixName = Replace(FixName,".","")
1 S O# t6 b x9 ]FixName = Replace(FixName,"asp","")
8 Q2 t7 ~5 M. b+ R! f9 I, w; }" dFixName = Replace(FixName,"asa",""), J4 u! Z" P* n3 Z) s4 @8 m
FixName = Replace(FixName,"aspx","")
5 G: e! ?0 e# A8 a/ h5 PFixName = Replace(FixName,"cer","")
1 O4 j! J$ F; T% AFixName = Replace(FixName,"cdx","")
2 Q. V( R- m7 x4 V) X6 FFixName = Replace(FixName,"htr","")! \) s0 K, O4 V- S8 h& N
FixName = Replace(FixName,"php","")
, F/ @ k/ T& s) M( j' QEnd Function* W, B6 Z2 Z: R- {1 ~' a
; @! ~8 v0 Q+ V, \: z# Y/ C9 s1 b) g- w4 P! c
作者: hzzh 时间: 2004-5-30 17:32
我认为主要应该对提交的文件全路径filepath进行过滤 H3 {: m# g7 q+ j
例如提交一个uploadface\aaa.asp+'\0'+.jpg 文件,从文件的扩展名File.FileExt得到的是合法的.jpg文件类型,但是利用漏洞上传后,产生为aaa.asp 非法文件,则才是这个漏洞的关键。' Q% z n& u* }( z
5 n& i9 m. l# h; t) @* q7 I5 ~" Q‘我累了‘前面提到的禁止uploadface目录的执行和脚本权限也许可防范。; W# m2 C' F6 M9 I3 B
P$ o! z; ?- w0 o
不过不知道Dvbbs 是否对上传的路径进行了限定,否则把filepath改成"c:/winnt/aa.exe+'\0'+.jpg 或者../../../aa.exe+'\0'+.jpg 什么的,这洞就有点大了8 [' E3 a4 V E. g/ F
+ p0 z0 k, E& g1 p[此贴子已经被作者于2004-5-30 17:43:02编辑过]
# l- K S' j& k0 ]
欢迎光临 下沙论坛 (http://bbs.xiasha.cn/) |
Powered by Discuz! X3.3 |