ASP+Access网站安全解决方案汇总

news/2024/5/12 19:52:57/文章来源:https://blog.csdn.net/god_7z1/article/details/6741455
本文我将就以ASP+Access为基础构建的网站可能存在的各种安全问题进行汇总讲解,给大家一个宏观上的认识。 攻击方法 在黑客学习过程中,我们很容易发现,国内80%的网站几乎使用的都是ASP,而小站的数目远远多于大型网站。对于小站,若是动态网站,国内普遍采

本文我将就以ASP+Access为基础构建的网站可能存在的各种安全问题进行汇总讲解,给大家一个宏观上的认识。 

攻击方法 
在黑客学习过程中,我们很容易发现,国内80%的网站几乎使用的都是ASP,而小站的数目远远多于大型网站。对于小站,若是动态网站,国内普遍采用ASP+Access结构,由于使用者数量众多,具有针对性,这里我们就来详细研究一下ASP+Access网站安全的解决方案。 
要建设一个安全的站,我们不能不了解目前针对ASP+Access网站的主流攻击手段,时下的攻击方法有XSS跨站、SQL注入、Cookie欺骗、%5C暴库、上传漏洞等。下面我们就针对这些问题做出相应对策。 
防范措施 
1)上传漏洞 
对于上传漏洞,一般的程序员都能做到在前台避免ASP、ASA、CER等类型的文件上传,所以对于前台的问题,这里不再赘述。 
2)XSS跨站 
针对XSS跨站,最大的作用就是HTML注入和获取Cookie。我想,更多的人是利用它来获取Cookie,取得Cookie后,目的只有一个,就是看网站是否有漏洞,得以让攻击方通过欺骗的方式进入后台。对于这种攻击方法,最好的防范措施就是把服务器端的验证改为Session。 
3)%5C暴库 
解决方案一:并不是所有的网站都存在%5C暴库的问题,对于这个问题,我们可以加入ON ERROR RESUME NEXT语句,让程序出错时仍继续向下执行,这样,数据库会相对安全。比如原来的conn.asp的文件内容如下: 
Response.buffer=true 
Const conndata=mydata/^%$!%25#%23&%78@data(+.asp 
'设置数据库路径 
Const backdata="mydata/#数据库备份#kycpanswpuzg1ok.asp" 
'设置数据库备份路径 
mydata="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(conndata) 
Set conn=Server.CreateObject("ADODB.Connection") 
conn.Open mydata 

为了防止暴库,我们改为如下的形式: 

Response.buffer=true 
Const conndata=mydata/^%$!%25#%23&%78@data(+.asp 
'设置数据库路径 
Const backdata="mydata/#数据库备份#kycpanswpuzg1ok.asp" 
'设置数据库备份路径 
On Error Resume Next 
mydata="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(conndata) 
Set conn=Server.CreateObject("ADODB.Connection") 
conn.Open mydata 

经过这样的设置后,就可以有效防止这种方法的攻击。 
我们再假设对方通过另外的途径获得了我们的数据库,想下载它,那我们怎么防止对方下载呢? 
有些朋友可能会认为,把数据库改成一个复杂的名字,如^%$!%25#%23&%78@data(+.asp就可以防下载了。其实,这样跟本就做不到防下载的目的,假如你的网站网址http://321cc.cn/data/^%$!%25#%23&%78@data(+.asp,把此地址直接复制到浏览器上,的确不能下载,但是经过URL编码后呢?我们只要把^%$!%25#%23&%78@data(+.asp用URLENCODE转换一下,得到%5E%25%24%21%2525%23%2523%26%2578%40data%28%2B%2Easp,再把完整的URLhttp://321cc.cn/data/%5E%25%24%21%2525%23%2523%26%2578%40data%28%2B%2Easp复制到迅雷,即可下载成功。 
如果再作点调整,将数据库加入防下载表,那么迅雷此时就无能为力了。我们首先建立一个表NotDown,设制类型为“备注”,然后在其中加入<% loop %>后,再将其类型设制为“OLE 对象”,如图1和图2所示。此时若在浏览器中下载数据库,将会出现如下所示的错误: 

 

 

Microsoft VBScript 编译器错误 错误 '800a03f6' 
缺少 'End' 
/iisHelp/common/500-100.asp,行242 
Microsoft VBScript 编译器错误 错误 '800a040e' 
'loop' 语句缺少 'do' 
/data/^%$!%25#%23&%78@data(+.asp,行227 
Loop 

同样,在迅雷和其它软件中也无法下载,这就是解决方案一。 
解决方案二:将数据库的地址设在非网站目录下,假如你网站的路径为“C:\Inetpub\wwwroot”,那么我们改数据库放于d:\data\^%$!%25#%23&%78@data(+.asp,conn.asp下,修改后的代码如下: 

Response.buffer=true 
Const conndata="d:\data\^%$!%25#%23&%78@data(+.asp" 
'设置数据库路径 
Const backdata="d:\data\#数据库备份#kycpanswpuzg1ok.asp" 
'设置数据库备份路径 
On Error Resume Next 
mydata="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&conndata 
Set conn=Server.CreateObject("ADODB.Connection") 
conn.Open mydata 

这样相对于前面的方法而言,更为安全,因为数据库已不能通过HTTP下载了。 

4)SQL注入 
     现在SQL注入很厉害,一个大型网站,由于文件众多,出现SQL注入漏洞也是情有可原的。现在多数人想到的办法是过滤掉危险的字符,如“‘”、“()”、“<>”以及Select、Update等字符,但是由于代码太多,很有可能忽略掉其中某些未经处理的外部数据。对此,我们可以换个角度来考虑。 
     我们可以想想,不管是SQL注入还是%5C暴库,其目的都是为了获取网站后台用户名和管理员密码。假如我们的密码是MD5加密的,那么对方将尝试进行暴力破解。如果把MD5加密算法作点修改,加密后,其密码散列将发生变化,使暴力破解失效。如果再用我们修改后的MD5加密算法对密匙进行二次MD5加密,安全性必将大大提高。 
下面我们就一起来修改MD5加密算法,其方法很简单。一份原MD5加密49至53行(16位加密)的代码如下: 
     RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits) 

     If (lValue And &H80000000) Then 
         RShift = (RShift or (&H40000000 \ m_l2Power(iShiftBits - 1))) 
     End If 

注意RShift = (lValue And &H7FFFFFFE)这部分,我们只要将H7FFFFFFE稍微作点修改,暴力破解就失效了,比如我们修改为H7FB9DFAE。在作修改前,我们用原MD5算法加密“a”得到散列“c0f1b6a831c399e2”,http://www.cmd5.com网站上可以轻松破解,如图3所示。修改后,我们再次对“a”加密,得到散列“8016a044f35128b8”,现在我们再次 

 
     
     由此我们可以看出,暴力破解“a”已经失效。这样操作后,一个字母a都破解不出来了,要是我们对a进行二次、三次MD5加密,想想结果会是什么?破解的人别想得到结果!不过前提是对方不知道你修改的MD5算法,否则根据你修改的算法再编写工具,暴力破解是完全可行的。所以,你要保证你的MD5.asp安全,千万不要在程序上出现一个像新云网站管理系统downfile.asp中的下载任意文件的漏洞,不然,就别想着安全了。 
     对于上面的方法,在不过滤任何字符的情况下也可以算是安全的,让旁注者去破解吧。如果真要做得完全不过滤,还要注意一个地方,就是登录页login.asp。我们可以把用户名和密码都改为MD5的加密密码,然后把加密后的MD5和数据库中的MD5作比较。这样,绝对不可能直接利用’or’=’or’进行后台猜解的。比如我们原来的登录验证代码如下: 
sql=”select user,pwd from admin where uname=’”&request(“user”)&”’ and pwd=’”&request(“pwd”)&”’” 
conn.execute(sql) 
if not rs.eof and not rs.bof then 
response.redirect “manage.asp” 
else 
response.write “登陆失败” 
end if 

很明显,上面的代码存在注入。在不过滤的情况下,我们可以做如下的修改。 

sql=”select user,pwd from admin where uname=’”&md5(request(“user”))&”’ and pwd=’”&md5(request(“pwd”))&”’” 
conn.execute(sql) 
if not rs.eof and not rs.bof then 
response.redirect “manage.asp” 
else 
response.write “登陆失败” 
end if 

注意,原数据库中的用户名和密码都是经过MD5加密了的。现在就不存在注入了,因为’or’=’or’会被我们修改了的MD5加密,加密后已变成“4556995b8f421800”。 
经过上面几种方法的防范之后,现在还有惟一的一个问题,就是防溯雪之类软件的暴力破解。虽然说一个字母a经过我们修改的MD5加密,让针对MD5密匙破解的程序已失效,但是如果你后台用户名和密码就用一个a,用溯雪几秒钟就能破解进入后台。 
像溯雪这类POST和GET的攻击,我们可以这样修改代码,让Session来处理(这里不采用Cookie,因为Cookie很容易被伪造)。 

dim t1 
if session("times")>=3 then 
response.write("<script>alert('登录次数超过限制,不允许再尝试暴力破解');this.location.href='index.asp';</script>") 
Response.End 
sql=”select user,pwd from admin where uname=’”&md5(request(“user”))&”’ and pwd=’”&md5(request(“pwd”))&”’” 
conn.execute(sql) 
if not rs.eof and not rs.bof then 
response.redirect “manage.asp” 
else 
session("times")=session("times")+1 
t1=3-session("times") 
response.write ("<script>alert('登陆失败');</script>”) 
response.write (”<script>alert('你还有"&t1&"次机会'); history.back();”) 
end if 

改为以上代码后,只要连续提交次数超过3次,系统将自动转到首页,这样就有效的防范了溯雪之类的软件攻击,当然,我们还可以编个稍微复杂点的,直接封锁攻击者的IP。需要注意的是,以上的方法只对ASP+Access网站有效。 

总结 
我们可以想象,攻击者不管是通过SQL注入、XSS跨站、%5C暴库,其直接目的就是为了得到管理员的用户名和密码进入后台,然后通过上传漏洞,或备份数据库之类的方法得到一个WebShell。如果我们的MD5是无法破解的,只要我们程序不存在Cookie之类的欺骗和下载任意文件的漏洞,攻击者前面作的很多事都将会是徒劳的。网站管理员千万要记住,密码是敏感的,可别被社会工程学给害了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_716297.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自己动手用麦咖啡(mcafee)打造自己的安全网站!安全系统(服务器)!

使用mcafee后&#xff0c;感觉它的监控真是没得说&#xff0c;的确不错的杀软&#xff0c;不过对于新手来说可能设置麻烦了点&#xff0c;但如果只用默认设置的话就安全性低了点&#xff0c;也许很多朋友都是导入现成的规则&#xff0c;本着DIY的想法&#xff0c;并且每个人都应…

检测网站是否开启了CDN的方法

无意中发现了一个巨牛巨牛的人工智能教程&#xff0c;忍不住分享一下给大家。教程不仅是零基础&#xff0c;通俗易懂&#xff0c;小白也能学&#xff0c;而且非常风趣幽默&#xff0c;还时不时有内涵段子&#xff0c;像看小说一样&#xff0c;哈哈&#xff5e;我正在学习中&…

网站挂马检测与清除

网站挂马检测与清除陈小兵据不完全统计&#xff0c;90%的网站都被挂过马&#xff0c;挂马是指在获取网站或者网站服务器的部分或者全部权限后&#xff0c;在网页文件中插入一段恶意代码&#xff0c;这些恶意代码主要是一些包括IE等漏洞利用代码&#xff0c;用户访问被挂马的页面…

微软ASP.NET网站部署指南(9):部署数据库更新

1. 综述 无论什么时候&#xff0c;程序都有可能像代码更新一样更新数据库。本章节你将进行数据库改动&#xff0c;測试。然后部署到測试环境和生产环境。 提醒&#xff1a;假设依据本章节所做的操作出现错误信息或一些功能不正常的话&#xff0c;请务必check Troubleshooting页…

网络连接异常、网站服务器失去响应_[pc玩家]Windows10中打不开网站的问题怎么解决?...

当用户在浏览器中输入网站的域名时&#xff0c;此时将发送请求到DNS服务器以识别连接到该主机名的IP地址&#xff0c;只有正确解析了IP地址才会打开你想要访问的网站。但有时你会收到一个错误消息&#xff0c;告诉你DNS服务器没有响应。要解决这个问题&#xff0c;你可以尝试几…

此网站无法提供安全连接_怎么设置服务器才能更安全呢

作为网站的优化人员来说&#xff0c;网站的排名不稳定&#xff0c;其中有网站服务器不稳定的安全原因&#xff0c;所以在我们选择服务器的时候就要选择那些知名的主机商&#xff0c;同时在服务器的搭建上要进行有必要的设置&#xff0c;才能让服务器更安全。一、最精简的安装和…

收藏!这37个自学网站,一年让你省下十几万

一.综合类 1、学堂在线 学堂在线运行了包括包括清华大学、北京大学、复旦大学、斯坦福大学、麻省理工学院、加州大学伯克利分校等国内外几十所顶尖高校的优质课程。 2、MOOC网 中国大学MOOC(慕课)是爱课程网携手云课堂打造的在线学习平台,每一个有提升愿望的人,都可以在这里…

写给那些ASP.NET程序员:网站中的安全问题

在网络经常看到网站被挂马、主页被修改的新闻&#xff0c;其实这些问题可能是多方面的&#xff0c;服务器&#xff0c;网站程序等等。。。但是现在溢出已经被人们重视和服务器的不断完善&#xff0c;服务器系统漏洞也不是那么容易发掘&#xff0c;当然也要保证第三方的软件安全…

LogParser的IIS网站分析技巧

日志分析&#xff0c;特别是IIS日志&#xff0c;一般人都会想到LogParser工具&#xff0c;的确很强。但是命令行的操作界面令很多非专业的管理人员望而生畏&#xff0c;现在好了&#xff0c;有一个可视化的LogParser的UI工具可以使用了&#xff01; Log Parser Lizard 1.1&…

来了,又一个新的SQL刷题网站!

大家好&#xff0c;我是小五????毋庸置疑&#xff0c;SQL是数据分析师需要掌握的一个基本的技能。之前我也分享过几个SQL在线学习网&#xff0c;比如SQLZOO、XUESQL、w3resourc等。当然&#xff0c;除了学习网站还有面试刷题的网站&#xff0c;比如Leetcode、牛客网等。今天…

网站站长必须知道的两种重定向方式

网站重定向技术是每个网站站长必须知道的&#xff0c;在网站改版&#xff0c;或网站搬家的时候一定会用得上网页重定向这个技术&#xff01;现在我和大家分享网站站长必须知道的两种重定向方式! 下面我们首先来了解一下两种重定向方式的区别&#xff1a;1、什么时候我应该使用r…

网站运营,先分清web1.0与web2.0「社区运营入门系列①」

大概在八年前&#xff0c;和朋友聊天时提及Web2.0&#xff0c;这是我第一次听到这个名词。当时不记得他是怎么解释这个名词的&#xff0c;只留下了一个印象&#xff1a;这将是今后互联网的大趋势。回去后我立即就百度了一下&#xff0c;一看不要紧&#xff0c;顿时就晕菜了&…

租个服务器自己写自己的网站,自己写一个web服务器(1)

web服务器一个运行在物理服务器上的网络服务器&#xff0c;它等待客户端发送的请求。当它收到一个请求&#xff0c;它会生成一个回复并传回到客户端。一个客户端和服务器的通信可以通过HTTP协议实现。HelloWorld# coding: utf-8import socketHOST, PORT , 8888listen_socket …

移动虚拟服务器,移动网站需要什么样的虚拟主机空间

移动互联网现在发展的越来越快&#xff0c;随着智能手机的普及&#xff0c;几乎是所有的人都可以使用移动端搜索需要的内容。因此现在越来越多的企业开始注重移动端的网站。那么&#xff0c;我们如果要搭建移动网站需要怎样的虚拟主机空间呢&#xff1f;移动网站需要什么样的虚…

在 Web 服务器或网站上配置 SSL

可以在 Web 服务器或网站上配置安全套接字层 (SSL) 安全功能以检验内容完整性、用户标识和加密网络传输。 Important 只有本地计算机上 Administrators 组的成员才能执行以下过程。作为安全性最佳操作&#xff0c;请使用不属于 Administrators 组的帐户登录计算机&#xff0c;然…

为网站配置SSL

从StartSll申请免费的SSL证书,该网站只支持IE,FireFox,Opera,Safari浏览器,并且注册成功后是以证书来登陆. 注册地址:https://www.startssl.com/?app12 注:注册过程中不要关闭浏览器. 第一步:填写注册信息,注意地址需要详细.如果地址信息不全,会人工发邮件给你,让你发详细地址…

越狱的 iPhone、iPad 通过网站实现一键安装 ipa 格式的 APP 应用

1、已经 越狱 的 iPhone、iPad 设备&#xff0c;当通过其自带的 safari 浏览器访问 ipa 应用下载网站时&#xff0c;利用 itms-services 协议&#xff0c;可以一键安装 ipa 文件的 iOS 应用&#xff0c;例如&#xff1a;<a href"itms-services://?actiondownload-mani…

如何更有效使用 Rational AppScan 扫描大型网站

http://www.ibm.com/developerworks/cn/rational/r-cn-appscanlargewebsite1/index.html Rational AppScan 工作原理 Rational AppScan&#xff08;简称 AppScan&#xff09;其实是一个产品家族&#xff0c;包括众多的应用安全扫描产品&#xff0c;从开发阶段的源代码扫描的 Ap…

让你的网站在IE8的兼容模式下运行

众所周知&#xff0c;微软的Internet Explorer团队一直在致力于将IE8打造为最符合业内标准的浏览器&#xff0c;所不幸的是&#xff0c;当前并非所有的网站都认同这些标准。如果你担心你的网站在IE8的标准模式下不能正常工作的话&#xff0c;下面这些方法也许对你有所帮助&…

bootstrap4 网格布局实例_网站设计师的10个糟糕网页设计实例和常见错误

本文讨论了10个糟糕的网页设计示例和常见错误&#xff0c;以帮助网站设计人员更好地了解好的和坏的网页设计之间的区别。在我们开始之前&#xff0c;我有一个问题&#xff1a;设计网站时&#xff0c;你的首要任务是什么&#xff1f;是吸引人的外观&#xff1f;还是酷炫的效果&a…