ASP终极防范上传漏洞

2016-01-29 18:59 5 1 收藏

ASP终极防范上传漏洞,ASP终极防范上传漏洞

【 tulaoshi.com - ASP 】

 

apollosun 原创

其实无论是组件还是非组件上传,都有这个漏洞,以下代码请需要得朋友仔细阅读,只要读懂代码就能融会贯通。

这里以ASPUPLOAD组件上传为例

以下3个关键函数:

function killext(byval s1) '干掉非法文件后缀
dim allowext
allowext=".JPG,.JPEG,.GIF,.BMP,.PNG,.SWF,.RM,.MP3,.WAV,.MID,.MIDI,.RA,.
AVI,.MPG,.MPEG,.ASF,.ASX,.WMA,.MOV,.RAR,.ZIP,.EXE,.DOC,.XLS,.CHM,.HLP,.PDF"
s1=ucase(s1)
if len(s1)=0 then
  killext=""
else
  if not chk(allowext,s1,",") then
   killext=".shit"
  else
   killext=s1
  end if
end if
end function

function chk(byval s1,byval s2,byval fuhao) '检查字符串包含
dim i,a
chk=false
a=split(s1,fuhao)
for i = 0 to ubound(a)
  if trim(a(i))=trim(s2) then
   chk=true
   exit for
  end if
next
end function

function gname(byval n1) '以日期自动产生目录和文件名,参数1生成目录,参数2生成文件名(无后缀)
dim t,r
t=now()
randomize(timer)
r=int((rnd+1-1)*9999)
select case n1
case 1
gname=year(t)&right("00"&month(t),2)&right("00"&day(t),2)
case 2
gname=right("00"&hour(t),2)&right("00"&minute(t),2)&right("00"&second(t),2)&right("0000"&r,4)
end select
end function

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

调用方法:

dim oup,ofile,ext,myfile

Set oup = Server.CreateObject("Persits.Upload")
oup.SetMaxSize 10000000, True
call oup.Save()  '这里是上传到服务器内存,并没有实际文件产生
set ofile = oup.files(1)
ext=killext(ofile.ext)

myfile="/" & ganme(1) & "/" & gname(2) & ext

call ofile.saveas(server.mappath(myfile))

 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

附加说明:

黑客如果用 nc 上传非法文件,最终得到的文件只是

如 200511051234559103.shit

之类的“狗屎”文件!

 

来源:http://www.tulaoshi.com/n/20160129/1508014.html

延伸阅读
标签: ASP
第一节、利用系统表注入SQLServer数据库 SQLServer是一个功能强大的数据库系统,与操作系统也有紧密的联系,这给开发者带来了很大的方便,但另一方面,也为注入者提供了一个跳板,我们先来看看几个具体的例子:  ①http://Site/url.asp?id=1;exec master..xp_cmdshell “net user name password ...
标签: ASP
       六 ASP安全建议    如何设置才能使ASP更加安全呢?以下我们重点来谈谈ASP安全方面要注意的问题。我们在第五部分“ASP漏洞和解决方法”中针对某些漏洞,也提出了相应的安全建议,这部分就不再重复。    在这部分的后面还要介绍些可扫描ASP漏洞的工具。     ...
标签: ASP
       8、ASP聊天室程序的漏洞    问题描述:    如果聊天室ASP程序设计不当,很容易会给他人利用来做坏事:可以踢人,穿墙,捣乱.    首先,我们看看聊天室里有什么漏洞,大家看看下面这段代码:      <html>   <head> &nbs...
标签: ASP
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL...
标签: SQLServer
ASP编程门槛很低,新手很容易上路。在一段不长的时间里,新手往往就已经能够编出看来比较完美的动态网站,在功能上,老手能做到的,新手也能够做到。那么新手与老手就没区别了吗?这里面区别可就大了,只不过外行人很难一眼就看出来罢了。在界面的友好性、运行性能以及网站的安全性方面是新手与老手之间区别的三个集中点。而在安全性方面,新手...

经验教程

39

收藏

39

热门标签

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部