堵塞Web漏洞(中)
2024-05-04 22:57:19
供稿:网友
●其它错误
此外,还有一些其它难以归类的错误,如“非1即0”导致绕过认证的问题。
9.2.3 常用的的cgi漏洞检测工具
1.twwwscan
这个工具速度比较快,而且可以利用参数把windows系统和unix系统分开扫描,不使用图形界面,比较简单些;
2.cis
是个图形化的小巧扫描工具,主要是针对windows系统设计,对检查出来的cgi问题有比较详细的描述,利于使用、分析和解决漏洞;
3.voideye
图形界面做的比较花哨,可以检查的cgi问题比较多些,但不太准确。
4.webscan
检查种类特多,好象有300来条,能提供html格式报告,集合了一些跟随攻击方式,这些工具只是检查一下服务器有没有这个链接存在,如果有,就会报出存在漏洞,这当然会有很多误报,工具是死的,人是活的,熟练应用这些辅助工具需要点时间熟悉一下就行了。
9.2.4 如何让你的cgi更安全
了解了cgi的安全问题,我们也该知道怎么加强cgi的安全了吧?下面简单总结一下作为参考:
1.使用最新版本的web服务器,安装最新的补丁程序,正确配置服务器;
2.按照帮助文件正确安装cgi程序,删除不必要的安装文件和临时文件;
3.使用c编写cgi程序时,使用安全的函数;
4.使用安全有效的验证用户身份的方法;
5.验证用户的来源,防止用户短时间内过多动作;
6.推荐过滤“& ; ` ' / ” | * ? ~ < > ^ ( ) [ ] { } $ /n /r /t /0 # ../;
7.注意处理好意外情况;
8.实现功能时制定安全合理的策略;
9.培养良好的编程习惯;
10.科学严谨的治学态度,避免“想当然”的错误;
9.3asp的安全性
asp(active server page) ,一个重要的web技术。它的出现给互联网带来了新的活力,它以一种前所未有的方式处理浏览器与服务器的交互通过内建对象、ado支持、wsh(可通过它管理nt domain)几乎可以完成传统应用程序所能完成的一切工作!!
asp是一种类似html(hypertext markup language超文本标识语言)、script与cgi(common gateway interface 通用网关接口)的结合体,但是其运行效率却比cgi更高、程序编制也比html更方便且更有灵活性,程序安全及保密性也比script好。如果您是第一次接触互连网(internet),那么您可能不很了解上述名词,以下对各种名词加以解释并说明它们之间的区别。
html(hypertext markup language)是一种超文本标识语言,文件通过这种格式可以在互连网上载送浏览,用户只要使用网页浏览器工具就可以浏览这些文件,目前比较常用的工具包括microsoft internet explorer,netscape communicator等,由于html文件都是由标签(tag)所组成,因此它比较适合制作静态网页,再者,由于先天上的限制html是无法直接存取数据库的,所以存取数据库的工作大多是依靠cgi来处理。asp不但可以包含html标签,也可以直接存取数据库及使用无限扩充的activex控件,因此在程序编制上要比html方便而且更富有灵活性。
简单讲,asp是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 web 服务器应用程序,如交互式的动态网页,包括使用 html 表单收集和处理信息,上传与下载等等,就像用户在使用自己的cgi程序一样。但是他比cgi简单。更重要的是,asp使用的activex技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的cgi等程序所远远不及的地方。使用asp还有个好处,就在于asp可利用ado(active data object,微软的一种新的数据访问模型,类似于dao)方便地访问数据库,从而使得开发基于www的应用系统成为可能。
9.3.1 asp漏洞分析和解决方法
asp的漏洞已经算很少的了,想要找到数据库的实际位置也不简单,但这不表明黑客无孔可入,也正是这个观点,一般的程序设计员常常忘记仔细的检查是否有漏洞,所以才有可能导致网站资料被窃取的事件发生。
asp里面含有一个安全漏洞,就是在/site/eg/source.asp这个随软件一起销售的范例程序,里面的内容有教使用者如何在服务器的这个目录下随意写入档案。解决这个漏洞的方法是建议删除所有软件提供的范例程序。
1.code.asp文件会泄漏asp代码
举个很简单的例子,在微软提供的 asp1.0 的例程里有一个.asp文件 ,专门用来查看其它.asp文件的源代码,该文件为 aspsamp/samples/code.asp。如果有人把这个程序上传到服务器,而服务器端没有任何防范措施的话,他就可以很容易地查看他人的程序。例如:
code.asp source=/directory/file.asp
不过这是个比较旧的漏洞了,相信现在很少会出现这种漏洞。
下面这命令是比较新的:
http://someurl/iissamples/exair/howitworks/code.asp/lunwen/soushuo.asp=xxx.asp
最大的危害莫过于asp文件可以被上述方式读出;数据库密码以明文形式暴露在黑客眼前;
问题解决或建议 :
对于iis自带的show asp code的asp程序文件,删除该文件或者禁止访问该目录即可。
2.filesystemobject 组件篡改下载fat分区上的任何文件的漏洞
iis3、iis4的asp的文件操作都可以通过filesystemobject实现,包括文本文件的读写目录操作、文件的拷贝改名删除等,但是这个强大的功能也留下了非常危险的“后门”。利用filesystemobjet可以篡改下载fat分区上的任何文件。即使是ntfs分区,如果权限没有设定好的话,同样也能破坏,一不小心你就可能遭受“灭顶之灾”。遗憾的是很多webmaster只知道让web服务器运行起来,很少对ntfs进行权限 设置,而nt目录权限的默认设置偏偏安全性又低得可怕。因此,如果你是webmaster,建议你密切关注服务器的设置,尽量将web目录建在ntfs分区上,目录不要设定everyone full control,即使是是管理员组的成员一般也没什么必要full control,只要有读取、更改权限就足够了。也可以把filesystemobject的组件删除或者改名。
3.输入标准的html语句或者javascript语句会改变输出结果
在输入框中输入标准的html语句会得到什么相的结果呢?
比如一个留言本,我们留言内容中输入:
<font size=10>你好!</font>
如果你的asp程序中没有屏蔽html语句,那么就会改变“你好”字体的大小。在留言本中改变字体大小和贴图有时并不是什么坏事,反而可以使留言本生动。但是如果在输入框中写个javascript 的死循环,比如:<a herf=”http://someurl“ onmouseover=”while(1)“>特大新闻</a>
那么其他查看该留言的客人只要移动鼠标到”特大新闻“,上就会使用户的浏览器因死循环而死掉。
解决方法和建议 :
编写类似程序时应该做好对此类操作的防范,譬如可以写一段程序判断客户端的输入,并屏蔽掉所有的 html、 javascrip。
4.access mdb数据库有可能被下载的漏洞
问题描述 :
在用access做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的access数据库的路径和数据库名称,那么他能够下载这个access数据库文件,这是非常危险的。比如:如果你access数据库book.mdb放在虚拟目录下的database目录下,那么有人在浏览器中输入:
http:// someurl/database/book.mdb
如果你的book.mdb数据库没有事先加密的话,那book.mdb中所有重要的数据都掌握在别人的手中。