欢迎光临
我们一直在努力

ASP终极防范上传漏洞-ASP教程,ASP技巧

建站超值云服务器,限时71元/月

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

调用方法:

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))

 

附加说明:

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

如 200511051234559103.shit

之类的“狗屎”文件!

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP终极防范上传漏洞-ASP教程,ASP技巧
分享到: 更多 (0)