论坛管理员来看看吧
打开下面这个连接http://bbs.echot.net/UploadFace/20045242285039363.gif 谢谢你,请和我联系一下 上传文件之后把首尾的代码去掉不就这样了吗,呵呵,晕 {仅仅是引起注意而已}
问题是, 这个 ASP 文件怎么上传进来的,而且被错误的执行为 gif 文件,如果这个asp带有病毒的话,就会有很多电脑受害。
我也不知道怎么解决,联系我也没用,反正这是动网论坛上传文件的漏洞,你编程水平很高的话自己修改原代码吧,或者等待动网论坛的官方补丁,相信很快就出来了
晕,这样都行,煎饼遇到难题了呵 设置一下 uploadface 不能执行程序就好了 没那么简单!直接把这个uploadface 删除了 设置过权限之后就不能执行程序了,html没有什么用 好象在哪本书上介绍过!
动网6.0 6.1 都有这个漏洞!
如果构造下 javascript代码还可能会得到会员和管理员的cookie,这个听起来很可怕啊!
这个是动网论坛的上传文件漏洞
主要问题出在asp无组件上传的代码中,以下这一句上
filename=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt
这句话将一段字符串合并起来,生成保存的文件名filename,formPath是表单提交的变量。
如果设法构造formPath:在计算机中检测字符串的关键就是看是否碰到'\0'字符,如果是,则认为字符串结束了.也就是说我们在构造上传文件保存路径时,只要欺骗计算机,让他认为类似"uploadface\zwell.asp"这样的路径参数已经结束了,这样,后面一连串的时间字符我们都可以不要,从而达到直接将文件保存为我们定义的文件名的目的。
因此,在构造的POST数据包中,将表单中的filepath改成类似uploadface\zwell.asp'\0'的字符串然后发送出去就行了。
也就是说,恶意提交的formPath中只要包含'\0',filename=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt语句得到的
filename就只有formPath了,后面的&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt部分都给丢弃乐,因此可以随意生成.asp等文件了。
解决方法,我想在filename=之前,先对formPath的内容进行过滤,把'\0'改成空格什么的,就可以防止这个漏洞了。asp我不熟悉,不知对'\0'检测用什么语句可以
关于这个漏洞的详细说明,见http://www.xfocus.net/articles/200405/700.html
偶八是斑竹,先闪过。。。。 呵呵,一个不大不小的漏洞,不过这个也不是用javascript可以利用的,要写socket程序才可以利用。 呵呵~!
这个问题应该说比较严重!
稍不注意就会泄露cookie,被人利用!
[此贴子已经被作者于2004-5-28 19:30:37编辑过]
以下是引用yzhlinux在2004-5-28 17:55:55的发言:
呵呵,一个不大不小的漏洞,不过这个也不是用javascript可以利用的,要写socket程序才可以利用。
如果先用sniff软件抓出正常POST数据,稍作修改,保存为aa.txt
然后telnet IP 80 <aa.txt
就可以利用这个漏洞上传文件了 ,不用编写程序 ^^)
找到post_upfile.asp、upfile.asp、z_visual_upfile.asp、NF_visual_upfile.asp、saveannouce_upfile.asp等上传文件(包括所有插件中的上传文件)
查找文件中的代码:
FileExt=Lcase(File.FileExt)
'判断文件类型
If CheckFileExt(FileExt)=false then
Response.write "文件格式不正确,或不能为空 [ <a href=# onclick=history.go(-1)>重新上传</a> ]"
EXIT SUB
End If
将其中的
FileExt=Lcase(File.FileExt)
替换为下面代码:
FileExt=FixName(File.FileExt)
formPath= Replace(Replace(formPath,Chr(0),""),".","")
下面的代码放在asp文件的最后 "%>"前
Function FixName(UpFileExt)
If IsEmpty(UpFileExt) Then Exit Function
FixName = Lcase(UpFileExt)
FixName = Replace(FixName,Chr(0),"")
FixName = Replace(FixName,".","")
FixName = Replace(FixName,"asp","")
FixName = Replace(FixName,"asa","")
FixName = Replace(FixName,"aspx","")
FixName = Replace(FixName,"cer","")
FixName = Replace(FixName,"cdx","")
FixName = Replace(FixName,"htr","")
FixName = Replace(FixName,"php","")
End Function
我认为主要应该对提交的文件全路径filepath进行过滤
例如提交一个uploadface\aaa.asp+'\0'+.jpg 文件,从文件的扩展名File.FileExt得到的是合法的.jpg文件类型,但是利用漏洞上传后,产生为aaa.asp 非法文件,则才是这个漏洞的关键。
‘我累了‘前面提到的禁止uploadface目录的执行和脚本权限也许可防范。
不过不知道Dvbbs 是否对上传的路径进行了限定,否则把filepath改成"c:/winnt/aa.exe+'\0'+.jpg 或者../../../aa.exe+'\0'+.jpg 什么的,这洞就有点大了
[此贴子已经被作者于2004-5-30 17:43:02编辑过]
页:
[1]