欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

堵塞Web漏洞(中)

程序员文章站 2022-05-22 13:59:43
...

web

●其它错误
此外,还有一些其它难以归类的错误,如“非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.3ASP的安全性

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语句会得到什么相的结果呢?

比如一个留言本,我们留言内容中输入:

你好!

如果你的ASP程序中没有屏蔽HTML语句,那么就会改变“你好”字体的大小。在留言本中改变字体大小和贴图有时并不是什么坏事,反而可以使留言本生动。但是如果在输入框中写个javascript 的死循环,比如:特大新闻

那么其他查看该留言的客人只要移动鼠标到”特大新闻“,上就会使用户的浏览器因死循环而死掉。

解决方法和建议 :

编写类似程序时应该做好对此类操作的防范,譬如可以写一段程序判断客户端的输入,并屏蔽掉所有的 HTML、 JavaScrip。

4.Access MDB数据库有可能被下载的漏洞

问题描述 :

在用Access做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的Access数据库的路径和数据库名称,那么他能够下载这个Access数据库文件,这是非常危险的。比如:如果你Access数据库book.mdb放在虚拟目录下的database目录下,那么有人在浏览器中输入:

http:// someurl/database/book.mdb

如果你的book.mdb数据库没有事先加密的话,那book.mdb中所有重要的数据都掌握在别人的手中。