原创]ASP安全方案-ASP防火墙
若对ASP不怎么了解请先看以上两贴:以上两贴来自网上
ASP木马对于ASP网站可是危险之极,现结合个人观点让你的网站处在安全保护之下:
对付现行的像upfile漏洞,现仅作初步分析

ASP危险情况
管理员密码或cookie泄露
比如以前的动网6.0的tongji.asp
SQL注入工具,金梅电影的破解可用黄金眼
文件上传漏洞
现动力下载 和动网的upfile.asp上传ASP木马

说到ASP木马,本人也用,功能对于黑客来说实在是太好,但对于一个站长来说
-----害怕极啦,现虽然没找到bbsxp的什么UPFILE.ASP上传漏洞,但还是先作好
一些安全措施是有必要的。本站刚刚建立,怎不能一开始就被上上ASP木马吧

现就个人观点做以下工作

根据以上分析:可以用以下几种方法来实现ASP防火墙功能

IP限制
管理员登陆页面另行设计
自动清除ASP木马
日志功能
现将从代码分析如下:

IP限制很简单实现:(ipcheck.asp)
<%
user_ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If user_ip = "" Then
userip = Request.ServerVariables("REMOTE_ADDR")
end if
pos=Instr(userip, "你的IP的一部分或全部")
if pos<>1 then
Response.Redirect "../error.asp?errmsg=未知错误,请联系本站"
end if
%>
以上代码是验证IP的可加入<!-- #include file="ipcheck.asp" -->调用
错误界面自行设计,如果有什么不明白,自已去查或联系本人(QQ:77973684)
这样就实现简单的IP限制啦
另注意一下:像BBSXP的login.asp管理员也可以在此进入所以要对管理员的帐号屏蔽啦然后再把管理员独有的文件加上<!-- #include file="ipcheck.asp" -->这句就安全多啦
就算哪位黑客用了 一天三十个小时破解了你管理员密码比如123(怎么有点像我的密码啊),他也不拥有管理员界面
当然别人可以伪造cookie来实现,那么你就可用SESSION搞定呵呵
session("hacker")="www.miss012.com"
当然此处最好不要用你的网站不然很好猜的搞得像MD5加密的那样呵呵

以上解决啦管理员的问题现将分析像upfile.asp漏洞上传漏洞

这里不用IP限制呵,但有一点是明确的,就是上传路径是一定的,这本来对黑客来说是极有利的,你动力下载一样可以直接返回文件名和路径,于是黑客只是在浏览器里输入路径就可有ASP木马啦。但对于站长来说~~~一大灾难,网站有ASP木马。现就公布一种方法来解决,前已说过,上传路径一定,那么我们只要在上传文件夹里扫描就行,有非法文件删。比如本来是上传图片的竟有一个ASP文件或CER文件,还不删。这里最好让它自动删除。所以我将它加到一个文件里,都是upfile.asp惹的祸,就加到他里啦,放到文件上传成功的语句之中,因为黑客们都想这个文件执行这些句子呵呵现在就让你执行此处就加扫描ASP木马的文件 killasp.asp
文件具体实现如下:
<%
Private function GetFileExt(FullPath)
If FullPath <> "" Then
GetFileExt = mid(FullPath,InStrRev(FullPath, ".")+1)
Else
GetFileExt = ""
End If
End function
miss = Server.MapPath("此处放目录")
if (miss <> "") then
set shell=server.createobject("shell.application") '建立shell对象
set fod1=shell.namespace(miss)
set foditems=fod1.items
for each cat in foditems
if GetFileExt(cat.path)="asp" then
添加错误处理,当然是删除文件啦
end if
if GetFileExt(cat.path)="cer" then
添加错误处理当然是删除文件啦
end if
next
end if
%>
删队文件不会的话你看上两贴http://miss012.dg518.com:8000/bbs/ShowPost.asp?id=18和
http://miss012.dg518.com:8000/bbs/ShowPost.asp?id=19


日志功能:记下来访者IP和操作
现给出一个简单的记录 功能的函数
function recordevent(which)
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then
userip = Request.ServerVariables("REMOTE_ADDR")
end if
if session("hackerip")="" then
Session("hackerip")=userip
set fB=Server.CreateObject("Scripting.FileSystemObject")
pF=Server.MapPath("/log/hacker.txt")
Set ZF=fB.OpenTextFile(pF,8)
ZF.writeline(userip&"非法观看了"&which&"
")
ZF.close
end if
end function

至于记录来访者的操作可以使用SESSION
本来是不想写出来的呵呵我曾跟cat说过我给你密码,也不一定进入我的后台,现在明白了吗
这里就不多说,若有不明白请联系本人,本人建站初期还请大家照顾!多做宣传!另外若有错误 之处还请高手指教!
本人站点:http://www.miss012.com QQ:77973684
欢迎大家转贴,请注明来自本站呵呵真是广告!!
待续中近期将作深一步分析…………