ASP无组件上传类大全

标签: , , ,

最近看了几篇关于 ASP 文件上传漏洞的文章,“临风小筑”中的《网络广泛流传的一个asp上传类的一处BUG》,“王晔的流水账”中的《ASP上传漏洞之利用CHR(0)绕过扩展名检测脚本》和《ASP/VBScript中CHR(0)的由来以及带来的安全问题》,觉得有必要把网上广泛流传的 ASP 文件上传类找出来,看看里面有没有 BUG。

首先要澄清一个概念,ASP 无组件上传类这个说法并不准确,所谓无组件上传,只不过不需要调用第三方组件而已,系统自带的 COM 组件还是要调用的。

搜索了一下,网上出现得比较多的 ASP 无组件上传类有(排名不分先后):

  1. 化境 ASP 无组件上传类 upload_5xsoft

    该文件上传类的作者是稻香老农,官方网站早已经打不开,没有办法获得官方版的代码,网上能找到的最新版本是 v2.1。作者自己的描述:

    一直以来,由于FileSystemObject的局限,所以ASP最大的难题就是文件上传,大多解决法就是安装第三方上传组件。可第三方组件有很多问题,有的组件要注册,有的组件要在表单中加上他的版权信息。还有的就是组件的兼容问题。

    在网上也流传了很多无组件上传的代码,但都是只能上传文本文件,或是只能将文件上传到数据库中。我这段时间在研究ASP,发现可以不用第三方组件上传任意类型的文件。就写了这个类,给大家一个方便,整个类放在一个文件中: upload_5xsoft.inc 在 Example 目录下还有一个完整的多文件上传示例程序,可以直接使用。

    申明:源代码是完全开放的,可能随意传播,但请保留其完整性,未经作者同意,不得用于商业。

  2. 梁无惧 ASP 无组件上传类 UpFile_Class

    该文件上传类的作者是梁无惧,和化境一样,官方网站早已经打不开,没有办法获得官方版的代码,网上能找到的最新版本是 v2.2。作者自己的描述:

    自从用ASP来编写网站,就无时无刻想找一种兼容性强,使用方便的上传方法,用过很多的无组件上传方法,但是都存在使用不方便,兼容性差,速度慢等的问题。终于在2003年的元旦里,想到了可以让上传文件达到最快的方法,经过10天的努力,整整10个版本的版本的更新,终于完成了第一个“无惧上传类V1.0”,这个版本与其它的上传类或方法相比,具有速度快,兼容性强, 使用方便等特点。

    经过整整一年,在得到各大网友的支持下,并且在长期使用中针对该版的不足,开发了1.1,1.2等版本,由于为了向下兼容,放弃了很多新的特性,现在,结过审慎考虑,终于在2004年7月10日完成了"无惧上传类2.0"版,该版相对于前作在安全上作出了最大的改进,在类内部实现了上传类型的黑白名单,更多方便了各种上传的环境,即使黑客突破了上传程序,但是最终在保存文件时会使他的所有努力付之流水,该版在使用上比前作更加方便,更人性化了。由于添加和修改了不少属性值,在移植上需要作出比较大的修改。

  3. 风声 ASP 无组件上传类 UpLoadClass

    该文件上传类的作者是风声,官网居然还能打开,不过界面十分简陋,目前最新版本是 v2.11。作者自己的描述:

    风声 ASP 无组件上传类 是当前效率最高的ASP无组件上传程序之一。

    风声 ASP 无组件上传类 自其V1.0发布就有自己鲜明的特点——易用;V1.02功能进一步加强,并且奠定了其在同类程序中高效率的地位;V2.0秉承其易用高效的优点,对稳定性和安全性进行全面地改进,经过严格的调试,上升到产品的高度,功能更完整,效率更高;V2.11对细节、国际化、大文件进一步优化,完全兼容V2.0。

    程序可自定义上传文件格式限制;自定义上传总大小、单文件大小限制;自动无重复命名批量/单个保存;自动源文件名批量/单个保存;自定义文件名保存;对于图片上传/flash上传还可以识别文件宽高;程序支持多字符集等。下载包包含丰富的范例和详尽的帮助文档。

  4. 艾恩 ASP 无组件上传类 An-Upload

    该文件上传类的作者是艾恩,目前最新版本是 v11.03.25。作者自己的描述:

    1.尽量追求简洁,减少赘余代码

    2.全面保存客户提交的信息(普通表单,文件域值,相同表单值)

    3.准确获取上传中的错误信息

    4.可选择文件保存方式(以原文件名保存和以新文件名保存,新文件名为时间+随机数字组成)

    5.文件保存函数简洁,调用方便,并且比较灵活(保存路径和保存方式可随时改变)

    6.同时可以获取文件的二进制形式,从而可以实现将二进制数据保存到数据库

    7.灵活运用本类,可以实现表单数据和文件同时编辑(这是一般类无法达到的)

    8.更多的用途靠大家来发现了…..

    9.examples里面有两个很简单的例子,能掌握这两个例子就可以灵活使用本类

目前我找到的就这几个,哪位同学还知道其他的,欢迎在下面留言补充。本来想写一个 Demon 版 ASP 无组件上传类的,想想还是别浪费时间了。上传个文件都那么麻烦,ASP 想不落寞都难。

随机文章:

  1. JavaScript函数参数,传值还是传址?
  2. 自甘堕落
  3. VBS过程和函数参数传递的方式默认是ByVal还是ByRef?
  4. VBS内置常量大全
  5. OpenWrt实现WOL(Wake-on-LAN)网络唤醒

3 条评论 发表在“ASP无组件上传类大全”上

  1. shirne说道:

    我了解的也是这几个,以前把化境和稻香老农搞混了。(老农恕罪~)
    艾恩宣扬最华丽的一点是上传进度显示,但我一直没有测试成功过。而且前台代码比较复杂,包括一个艾恩js框架(虽然很简单)
    上传进度获取不到,我只了解大致原因应该是服务器处理上传文件的同时无法响应其它的请求了,可能和服务器配置有关,不知道demon有没有这方面经验?

    • Demon说道:

      没研究过ASP,但是我一直觉得上传进度功能很鸡肋,完全没有必要。

      • shirne说道:

        是很鸡肋,所以也没过深的研究。
        如果以后浏览器能支持相关接口,应该还是很不错的。
        像chrome,提交表单的时候状态栏就有进度显示(百分比的),不知道有没有相关接口可以调用。

留下回复