微标asp无组件上传类v1.3(无刷新ajax上传,可检查图片木马,支持多文件,utf-8版)

无·法 您的网络发生故障,内容加载失败 2018-08-13 09:22:49
微标asp无组件上传类v1.3(无刷新ajax上传,可检查图片木马,支持多文件,utf-8版)




请将本程序放到你的虚拟主机上运行,如果本地有iis也可以。有些同学有简易iis服务器,不适用本程序的,因为有部分中文字符不能识别导致无法运行。
如果需要上传单文件可以把index.htm中的multiple="multiple"删除掉,对应的多文件前端显示及处理需要您对upload.asp进行修改调整,然后前端ajax获取数据进行处理。

关于“无组件上传类 Version 0.96”修改摘要:
'修改点 : v0.97 修复了一个错误。当用户在同一个file控件选择多个文件上传时file.add语句会出错, 2018-06-04
'   原因是键值冲突,本版本对键值做了唯一化处理。
' v0.98 将Charset="gb2312" 改成Charset="utf-8",所有文件格式都改成utf8了 2018-8-11
' 修改了在上传的时候检查图片是否被注入了代码,比如<% 、request 等关键字符


相关参数设置:

1.ajax_upload.asp中的参数设置说明:
(1).SavePath 上传目录,默认为“uploadfiles”。

2.clsUpload.asp中的参数设置说明:
(1).AllowFiles 所允许上传的文件格式,默认为"jpg,jpeg,gif,png"。
(2).MaxDownFileSize 允许上传的文件大小,默认30M,注意iis默认限制就几百k,您需要在iis那儿做设置,网站 - asp - 限制属性 - 最大请求实体主体限制,加上两个0,改成20000000,这样就改成20M了。

3.index.htm中的参数说明
在第27和32行,分别是判断类型和大小的,可手动修改。这里是前端检测文件类型和大小的,可减轻服务器工作。后端要等文件post完成才能开始检测,假设误选择了个几百兆的exe、rar等文件网页直接卡死。


提示:在clsUpload.asp的第134行对文件中可能存在的危险asp代码做了简单的检查,具体是判断是否包含“request”字符串,如果需要对其他代码判断可在此处修改。建议不要以判断<%、eval、%>这3个特殊字符串来确定图片木马,因为正常文件中可能也有,而且有些图马文件没有<%。

程序提供了两个图马文件供测试,用记事本打开可以看到底部的asp代码。自己也可以做图片木马文件,具体做法自己百度。


asp无组件上传类v0.98,几大特色:
1.无组件
2.可检测简单的图片木马文件
3.支持中文命名的图片
4.ajax无刷新,不用frame!
5.可返回图片服务器路径
6.速度快
7.支持多文件
8.全新utf-8版
9.免费稳定


详细介绍:https://blog.csdn.net/sysdzw/article/details/80562058
下载地址:https://github.com/sysdzw/aspupload

...全文
1331 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 您的网络发生故障,内容加载失败! 2020-03-27
  • 打赏
  • 举报
回复
无·法 您的网络发生故障,内容加载失败! 2020-03-26
  • 打赏
  • 举报
回复
无·法 您的网络发生故障,内容加载失败! 2020-03-26
  • 打赏
  • 举报
回复
lm5580409 2018-12-07
  • 打赏
  • 举报
回复
谢谢分享!!!!!!!!!
amuie 2018-10-15
  • 打赏
  • 举报
回复
都说了正则不是完全对比,你可以当他是一个正则规则在一段代码里出现的次数,比如eval你可以判断eval后面有没有带括号,括号有没有引号,有没有代码,你可以先去了解下正则
无·法 您的网络发生故障,内容加载失败! 2018-10-15
  • 打赏
  • 举报
回复
我的类里面判断方法,就是判断是否存在这些字。 本想判断asp标记对中是否出现这个,但是发现有些图片图片文件乱码方式打开竟然没有百分号,所以asp标记对不能做为判断标准了。

vMumaKeyWord = split("request|execute|wscript.shell|activexobject|include|function|.encode|.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|.createobject","|") '
for intMKW=0 to ubound(vMumaKeyWord)
if instr(strContent,vMumaKeyWord(intMKW))>0 then
if instr(oFileInfo.FileType,"image/")>0 then
oFileInfo.ErrCode=3
oFileInfo.ErrMsg="要上传的图片“" & sFileName & "”含有木马。" & vMumaKeyWord(intMKW)
else
oFileInfo.ErrCode=4
oFileInfo.ErrMsg="要上传的文件“" & sFileName & "”含有木马。" & vMumaKeyWord(intMKW)
end if
exit for
end if
next
无·法 您的网络发生故障,内容加载失败! 2018-10-15
  • 打赏
  • 举报
回复
引用 11 楼 amuie 的回复:
加入到fso.asp里就可以了,api改回easp就可以直接调用
我那个改了不少东西,你要可以发你,没上传git
没用过easp,想大概问下你的判断是否是用正则是否在一片“乱码”中判断关键字出现在<% %>内的? 如果是这样那么没有意义。
amuie 2018-10-14
  • 打赏
  • 举报
回复
http://111.231.91.58
amuie 2018-10-14
  • 打赏
  • 举报
回复
加入到fso.asp里就可以了,api改回easp就可以直接调用
我那个改了不少东西,你要可以发你,没上传git
无·法 您的网络发生故障,内容加载失败! 2018-10-07
  • 打赏
  • 举报
回复
引用 9 楼 amuie 的回复:
easp上改的一个mvc框架,你百度搜easp就有了
下载了没找到相关代码。 可否直接贴下?如果合适的话添加到库里,可以将你大名加入。
amuie 2018-10-06
  • 打赏
  • 举报
回复
easp上改的一个mvc框架,你百度搜easp就有了
无·法 您的网络发生故障,内容加载失败! 2018-10-05
  • 打赏
  • 举报
回复
引用 7 楼 amuie 的回复:
引用 6 楼 sysdzw 的回复:
而且你的代码会误杀的。不能以判断script和eval为准的,因为正常的文件也会随机出现eval,然后图片文件通常都会有Description这的单词,你这script就包含了。
api是写的一个class框架类调用,意思就是正则判断,有注析,eval和script你完全可以在正则里写更详细的规则去判断,他不是InStr完全去对比字符串
可否提供代码交流下?
amuie 2018-10-05
  • 打赏
  • 举报
回复
引用 6 楼 sysdzw 的回复:
而且你的代码会误杀的。不能以判断script和eval为准的,因为正常的文件也会随机出现eval,然后图片文件通常都会有Description这的单词,你这script就包含了。
api是写的一个class框架类调用,意思就是正则判断,有注析,eval和script你完全可以在正则里写更详细的规则去判断,他不是InStr完全去对比字符串
无·法 您的网络发生故障,内容加载失败! 2018-10-04
  • 打赏
  • 举报
回复
而且你的代码会误杀的。不能以判断script和eval为准的,因为正常的文件也会随机出现eval,然后图片文件通常都会有Description这的单词,你这script就包含了。
无·法 您的网络发生故障,内容加载失败! 2018-10-04
  • 打赏
  • 举报
回复
引用 4 楼 amuie 的回复:
这才是木马检测

'检测图片是否合法
Public Function isImg(ByVal Path)
Path = absPath(Path) '获取绝对路径
If Not isFile(Path) Then isImg = False : Exit Function
Dim tamp, i, ext, sun, obj, str : obj = 0
'检测图片内容非法字符
str = "script|execute|eval|\#\@\~\^.+?\=\=\^\#\~\@|wscript.shell|activexobject|include|sub|function" &_
"|.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|.createobject"
'正则对比
If Api.Str.Test(Read(Path), str) Then isImg = False : Exit Function
'识别格式
Select Case ExtOf(Path)
Case ".jpg", ".jpeg" : ext = Array(&HFF, &HD8) : sun = 1
Case ".gif" : ext = Array(&H47, &H49, &H46, &H39, &H38, &H61) : sun = 5
Case ".png" : ext = Array(&H89, &H50, &H4E, &H47) : sun = 3
Case ".bmp" : ext = Array(&H42, &H4D) : sun = 1
Case Else isImg = False : Exit Function
End Select
With Server.CreateObject("ADODB.Stream")
.Open
.Type = 1
.LoadFromFile Path
.Position = 0
tamp = .Read
.Close
End With
'检测图片开头二进制特征
For i = 0 To sun
If Ascb(Midb(tamp, i + 1, 1)) = CByte(ext(i)) Then obj = obj + 1
Next
If (obj - 1) = sun Then isImg = True Else isImg = False
End Function
有完整代码吗?api. 是什么?
amuie 2018-10-04
  • 打赏
  • 举报
回复
这才是木马检测

'检测图片是否合法
Public Function isImg(ByVal Path)
Path = absPath(Path) '获取绝对路径
If Not isFile(Path) Then isImg = False : Exit Function
Dim tamp, i, ext, sun, obj, str : obj = 0
'检测图片内容非法字符
str = "script|execute|eval|\#\@\~\^.+?\=\=\^\#\~\@|wscript.shell|activexobject|include|sub|function" &_
"|.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|.createobject"
'正则对比
If Api.Str.Test(Read(Path), str) Then isImg = False : Exit Function
'识别格式
Select Case ExtOf(Path)
Case ".jpg", ".jpeg" : ext = Array(&HFF, &HD8) : sun = 1
Case ".gif" : ext = Array(&H47, &H49, &H46, &H39, &H38, &H61) : sun = 5
Case ".png" : ext = Array(&H89, &H50, &H4E, &H47) : sun = 3
Case ".bmp" : ext = Array(&H42, &H4D) : sun = 1
Case Else isImg = False : Exit Function
End Select
With Server.CreateObject("ADODB.Stream")
.Open
.Type = 1
.LoadFromFile Path
.Position = 0
tamp = .Read
.Close
End With
'检测图片开头二进制特征
For i = 0 To sun
If Ascb(Midb(tamp, i + 1, 1)) = CByte(ext(i)) Then obj = obj + 1
Next
If (obj - 1) = sun Then isImg = True Else isImg = False
End Function
qq_42999894 2018-08-17
  • 打赏
  • 举报
回复
收藏了。谢楼主
hookee 2018-08-13
  • 打赏
  • 举报
回复
参考:https://blog.csdn.net/sysdzw/article/details/80562058 微标ASP上传 v1.3(无刷新无组件、多文件上传,并且可查杀木马,utf-8格式) 请将本程序放到你的虚拟主机上运行,如果本地有iis也可以(注意定要把iis那儿的上传大小限制的200k改大点,参考下面第二点)。注意不要使用一些简易asp服务器,会有莫名其妙的错误。 如果只需要上传文件可以把index.htm中的multiple="multiple"删除掉,对应的多文件前端显示及处理需要您对upload.asp进行修改调整,然后前端ajax获取数据进行处理。 关于“微标ASP上传 v1.3”更新摘要: '========================================================================================================= ' 名 : 微标ASP上传 v1.3(无刷新无组件、多文件上传,并且可查杀木马,utf-8格式) '作 者 : sysdzw '联系QQ : 171977759 '网 站 : https://blog.csdn.net/sysdzw ' 本 : v1.0 以化境ASP无组件上传作为初v1.0, 之后进行了多项修改。 ' v1.1 修正了批量上传时file.add语句的报错问题。原因是键值冲突,本本对键值做了唯一化处理。 2018-06-04 ' v1.2 修改文件格式为utf-8格式,以提高兼容性 2018-08-13 ' 修改代码中部分Charset="gb2312"为Charset="utf-8",以提高兼容性 ' 增加了图片木马检测功能。在上传的时候以gb2312格式读入字符串检测是否包含request等关键字 ' v1.3 改进了图片木马检测功能。加入了更多的关键字判断,让木马无处遁形 2018-10-04 '========================================================================================================= 相关参数设置: 1.ajax_upload.asp中的参数设置说明: (1)SavePath 上传目录,默认为“uploadfiles”。 2.clsUpload.asp中的参数设置说明: (1)AllowFiles 所允许上传文件格式,默认为"jpg,jpeg,gif,png"。 (2)MaxDownFileSize 允许上传文件大小,默认30M,注意iis默认限制就200k,您需要在iis那儿做设置,网站 - asp - 限制属性 - 最大请求实体主体限制,加上两个0,改成20000000,这样就改成20M了。 3.index.htm中的参数说明 在第32和37行,分别是判断型和大小的,可根据需要修改。这里是前端检测文件型和大小的,可减轻服务器工作。后端要等文件post完成才能开始检测,假设误选择了个几百兆的exe、rar等文件网页直接卡死。早发现文件早提示。 查杀图片木马原理:一些图片会被不法分子插入些可执行的asp代码,在被include的时候悄悄执行,我们将图片以文本方式进行检查,判断是否包含某些关键字,如果包含就停止上传,总而提高了服务器的安全。 本来想打包个图片木马文件供大家测试,担心上传会不通过,而且下载了后本机的360等软件也会报毒,这样会吓坏一批小白,以为我代码有什么后门。。其实就那么几行代码,大家可以逐行看,没什么机关的。如果一定想试验下代码的效果可以百度下asp图片木马制作方法,然后自己做个图马上传测试看看。 本程序由sysdzw提供。如有需技术支持可联系QQ:171977759

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧