使用无惧上传类遇到一个非常邪门的问题!

2336阅读 0评论2010-08-09 a52527459
分类:系统运维

使用无惧上传类遇到一个非常邪门的问题!
就是在使用无惧上传类的(我的无惧上传类有点低,还是1.0的,有时间了升级2.2的,最下面有下载链接)
一个调用页面,如果使用了request方法,再使用UpFile Class的GetDate方法就会出现错误.
两者不能同时存在.

代码示例如下:


if trim(request("uploadit")) = "" then
 response.write "请勿邪恶,必须使用本网站的上传才可以"&trim(request("uploadtrue"))
    response.end
end if

dim Farr

Set Upload = New UpFile_Class Upload.InceptFileType = "gif,jpg,bmp,jpeg,rar,png"

Upload.MaxSize = 1024000

Upload.GetDate()

...


上传的时候,要检测文件名不能有以下字符,会被恶意制造一个上传漏洞的.



    FileName = Replace(FileName,":","1_")
    FileName = Replace(FileName,"<","2_")
    FileName = Replace(FileName,">","3_")
    FileName = Replace(FileName,"?","4_")
    FileName = Replace(FileName,"*","5_")
    FileName = Replace(FileName,"""","6_")
    FileName = Replace(FileName,"|","7_")
    FileName = Replace(FileName,";","8_")
    FileName = Replace(FileName,"..","9_")


无惧上传类V2.2下载

补充:
由于上面没有判断ascii转义字符,比如a.asp%3baa.gif ,保存文件的时候,%3B会自动decode变成;

由于iis6.0(或者全部iis)有个bug,会把a.asp;aa.gif解析成a.asp,这样访问a.asp;aa.gif就会直接进入解析asp后的页面;
 
所以,有必要将ascii转义字符进行decode或者对其中的字符进行radom,随机变换城一些字母.
 
不过我还是偏向于 先decode在replace..

上一篇:IIS 日志的查看,iis 日志查看器
下一篇:查询一个文件属于哪个RPM包!OR Deb