当前位置:文章中心 - 站长资讯 - ASP还有存在的必要了吗?
相关文章
这里放搜索
最新文章
ASP还有存在的必要了吗?
关键词:ASP,html,PHP,黑客,漏洞 时间:2008年05月23日 星期五 阅读:770

脚本语言正在融入生活,纵览现在的网络世界,不管是老牌的ASP,还是网络新贵PHP,ASP.NET,或者是很多人都不熟悉的PERL,不管你有没有意识到,所有人都无法避开与脚本打交道了。脚本语言具有强大的互动功能,为原本一潭死水的静态html页面带来活力,但是越多的功能意味着安全性的降低,ASP,PHP的程序漏洞每时每刻都会产生,PHP还算可靠,微软的ASP可就让黑客乐了好一阵子,为了解决ASP的尴尬,微软开发出了他的新的主打脚本----ASP.NET,但是ASP的程序依然存在,不仅存在,现在仍然非常多,漏洞也是层出不穷,国内的ASP论坛,不管是动网还是BBSXP,每隔一段时间依然要爆出一个大的漏洞。那么ASP到底还有没有存在的必要呢?很多人都说ASP已经开始淘汰了。

先看看ASP的介绍吧。

Microsoft Active Server Pages(ASP)是服务器端脚本编写环境,使用它可以创建和运行动态、交互的 Web 服务器应用程序。使用 ASP 可以组合 HTML 页 、脚本命令和 ActiveX 组件以创建交互的 Web 页和基于 Web 的功能强大的应用程序。
现在很多网站特别是电子商务方面的网站,在前台上大都用ASP来实现。以至于现在ASP在网站应用上很普遍。

上网,课外研学了几个主要的ASP程序的安全问题。

1、 在ASP程序后加个特殊符号,能看到ASP源程序

2、 ACCESS mdb 数据库有可能被下载的漏洞

3、 filesystemobject 组件篡改下载 fat 分区上的任何文件的漏洞

4、 输入标准的HTML语句或者javascript语句会改变输出结果

5、 ASP程序密码验证漏洞

6、 IIS4或者IIS5中安装有INDEX SERVER服务会漏洞ASP源程序

7、 NT iss4.0_AuthChangeUrl? 漏洞

8、 微软开发的两个动态库存在后门允许用户查看ASP文件源程序和下载整个网站

9、 漏洞名称:IIS4.0受HTTP的D.O.S攻击漏洞

10、 漏洞名称:IIS5.0超长URL拒绝服务漏洞

11、 请求不存在的扩展名为idq或ida 文件,会暴露服务器上得物理地址

12、 NT Index Server存在返回上级目录的漏洞

13、 绕过验证直接进入ASP页面

14、 IIS4.0/5.0特殊数据格式的URL请求远程DOS攻击

15、 IIS web server DOS

16、 ASP主页.inc文件泄露问题

17、 利用Activer server explorer可对文件进行读写访问

18、 ASP编辑器会自动备份asp文件,会被下载的漏洞

19、code.asp文件会泄漏ASP代码

20、注入漏洞。

21、跨站攻击漏洞。

22、上传漏洞

其中前19项是我摘抄的文献上面的,20、21 、22三项是网络上面黑客流行的ASP页面的攻击方式。

看到存在这么多的漏洞,可能很多朋友开始怕了,ASP不安全但是没想到这么不安全。但是让我们来仔细分析一下,这22项漏洞。

首先我们不能栽赃于人,不可否认ASP+IIS(可能也只有IIS)+ACCESS或者MSSQL(整个一微软大家庭)是黄金组合,但是不是ASP的漏洞我们不能栽赃给ASP,假设作为PHP“好友”的mysql除了安全问题,有没有人会把它作为PHP的安全问题提出来呢?同样,虽然使用ASP的服务器,数据库都是微软公司开发的,但是毕竟是不同功能的软件,所以我们需要从以上21项中剔除不属于ASP的漏洞-------其中1,2,6,7,8,9,10,11,14,15均属于IIS的漏洞,并且都是很早版本的,可能有的人觉得2不是,但是数据库被下载我实在不知道该归于哪一类,我们就把它归功于IIS吧,谁叫你不能解析.mdb格式呢。

4和21其实都是同一类,都是属于跨站漏洞,关于跨站的原理其实有必要提一提。

跨站的定义是:Cross Site Script Execution(通常简写为XSS)是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
业界对跨站攻击的定义如下:“跨站攻击是指入侵者在远程WEB页面的HTML代码中插入具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载 该页面,嵌入其中的脚本将被解释执行。”由于HTML语言允许使用脚本进行简单交互,入侵者便通过技术手段在某个页面里插入一个恶意HTML代码,例如记 录论坛保存的用户信息(Cookie),由于Cookie保存了完整的用户名和密码资料,用户就会遭受安全损失。如这句简单的Java脚本就能轻易获取用 户信息:alert(document.cookie),它会弹出一个包含用户信息的消息框。入侵者运用脚本就能把用户信息发送到他们自己的记录页面中, 稍做分析便获取了用户的敏感信息。

恶意的用户输入造成了,用户输入的代码与服务器返回给其他用户的代码混在一起,如果用户输入恶意的代码,那么其他浏览此页面的用户就可能受到攻击。类似,<script>alert(“cmd”)</script>之类的弹窗。现在很多很多 ASP程序都存在这种攻击方式,当然不止ASP,PHP以及其他脚本同样存在这样的漏洞,sina,sohu的邮箱都有跨站,虎踞龙盘的2个搜索引擎也有2个不痛不痒的跨站。对付这种漏洞的方法就是完全的过滤,一定要完全,要不然都是徒劳。

这的确可以算是ASP的一个漏洞。但是很勉强,原因后面说。

至于3、12、17、19、22我觉得完全不能算是漏洞,原因很简单,你能够应为会传送木马而说FTP功能是漏洞吗,QQ的传文件功能是漏洞吗,假使某个用户在WINDOWS环境下执行了一个后门程序,到底是应该怪WINDOWS呢还是应该把责任归结于用户呢?不能把程序的功能说成漏洞,要不然不是什么程序都不能运行了。类似19就是把木马的责任归咎于WINDOWS。而且ASP可以很好的解决这些漏洞,就像WINDOWS下的很多杀毒软件一样。通过上传的检侧等等可以杜绝上传漏洞。

关于20、注入漏洞,我也觉得有必要好好说一说。注入可以说是脚本语言的漏洞之王,漏洞众多,危害巨大,很多黑客白箱操作分析程序代码的时候往往都是疯狂的查找没有被过滤的变量,借此想找到注入漏洞,不管是url,表单,搜索栏,甚至是COOKIES,都可能会成为潜在的注入点。

注入的定义是:所谓的SQL(结构化查询语言)注入,简单来说就是利用SQL语句在外部队SQL数据库进行查询,更新等动作。首先,数据库作为一个网站最重要的组件之一(如果这个网站有数据库的话),里面是储存着各种各样的内容,包括管理员的账号密码,
网站的配备内容等,一旦里面的数据被某人获得或者是被修改,那么那个人就可能获得整个网站的控制权。至于怎么获得这些数据,那些MSSQL弱口令的就不说,剩下的最有可能就是利用注入漏洞。
当用户在网站外部提交一个参数进入数据库处理,然后把处理后的结果发给用户,这个时动态网页最常见的,但是这个参数一旦没有被过滤,使得我们自己构造的sql语句也可以和参数一起参与数据库操作的,那么SQL注入漏洞就会产生
一个网站上存在外地数据提交是很正常的,一般都是用参数接受(request),然后再进行处理,而涉及于数据库操作的却占了很大的一部分。例如下面的例子
http://www.poruin.com/1.asp?cs=1
这个地址包含了参数1,以及传递该参数的变量cs,意思就是,在http://www.poruin.com的文件夹里有一个1.asp文件,1.asp 文件内部存在cs变量,作用就是接受有外部提交的一个参数:1,也可以是其他的,那么在1.ASP这个文件里的相关代码一般
就是这样:
…………
cs=Request("id")
sqlsever="select * form xx where id='"&cs&"'"
……………
用request读取id变量的内容,然后进行SQL查询,语句就是 select * from xx where id = 1,这个比较好理解吧,但是我来用最经典的注入漏洞检测方法,在参数后面加上’,地址就变成http://www.poruin.com/1.asp? id=1'
查询语句就变成了sqlserver=select * from xx where id = ‘1’' ,后面多了一个',出现闭合问题,如果没有过滤的那就会提示没有闭合的’。
利用小竹贡献的and 1=1和and 1=2 原理也还是一样
select * from xx where id = 1 and 1=1
select * from xx where id = 1 and 1=2
1=1是成立的,而1=2是不成立的,那么查询结果就是: 真 and 假 最终结果是错
所以,第一个地址返回正常,第二个地址返回不正常,这样就可以检测出有没有漏洞。
再者参数后面跟着的是SQL语句呢,例如更新语句:
Update admin set passwd = 'poruin' where user= 'admin'
url就是:http://www.poruin.com/1.asp?id=1 and update admin set passwd = 'poruin' where user= 'admin'
查询语句就是:select * from xx where id = 1;and update admin set passwd = 'poruin' where user= 'admin'

存在此漏洞的不但是asp access, asp sql server, php mysql ,jsp oracle等都有类似问题。

国内黑客也有很多傻瓜式的工具(比如HDSI,NBSI,,啊D),让根本没有基础的人也能轻易通过注入轻松拿下一个网站。所以危害就更巨大了。

但是看他定义的最后一句话,“存在此漏洞的不但是asp access, asp sql server, php mysql ,jsp oracle等都有类似问题。”其实这个跟以上的跨站是一样的,跨站也不是ASP的专利,PHP也有。我们在讨论ASP漏洞的时候可以吧跨站和注入2大漏洞拿出来说,但是现在我们研究的是“ASP还有存在的必要了吗?”,也就是吧ASP与其它脚本语言作对比,那么这个时候,这2大漏洞就不是重点了。

5、13、18是特殊的ASP程序的漏洞,具有一定的特殊性。但是是完全可以防范的。

综上所述,分析了下被很多人诟病的ASP,其实目前来看,还是很有生命力的,因为绝大多数IIS的漏洞都被人当成ASP的缺陷而栽赃给了ASP。ASP还有存在必要了吗?绝对有!ASP还有顽强的生命力,并且它编写简单,学起来很快,相信他将继续为INTERNET的发展贡献出自己的力量!

上一篇:你的链接nofollow了吗 谈反向链接 下一篇:没有了

0条记录访客评论

暂未有任何评论,你来发表一篇吧!

发表评论

(必填)
(必填)
 
友情链接