ASP终极防范上传漏洞

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

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

【 tulaoshi.com - ASP 】

 

apollosun 原创

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

这里以ASPUPLOAD组件上传为例

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

以下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

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

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

 

附加说明:

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

如 200511051234559103.shit

之类的“狗屎”文件!

 

来源:https://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...
标签: ASP
  编写思路: 把本地文件在客户端通过base64编码以后发送目的地. 测试过程中,上传文件过大,导致超时不成功. 后来经过改善.把编码分段发送.测试20M成功 编写目的: 在传统的解决方案里面,一次一次选取上传可以.但是在碰到把数据库里文件路径读出来,并把这些文件上传到一个地方的时候就比较麻烦. 如果得到路径一个一个去找到用ftp当然也是可...

经验教程

818

收藏

57

热门标签

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