网站后台系统的安全漏洞都有哪些
ASP漏洞大全
Microsoft Active Server Pages(ASP)是服务器端脚本编写环境,使用它可以创建和运行动态、交互的 Web 服务器应用程序。使用 ASP 可以组合 HTML 页 、脚本命令和 ActiveX 组件以创建交互的 Web 页和基于 Web 的功能强大的应用程序。
现在很多网站特别是电子商务方面的网站,在前台上大都用ASP来实现。以至于现在ASP在网站应用上很普遍。
ASP是开发网站应用的快速工具,但是有些网站管理员只看到ASP的快速开发能力,却忽视了ASP安全问题。ASP从一开始就一直受到众多漏洞,后门的困扰,包括%81的噩梦,密码验证问题,IIS漏洞等等都一直使ASP网站开发人员心惊胆跳。
本文试图从开放了ASP服务的操作系统漏洞和ASP程序本身漏洞,阐述ASP安全问题,并给出解决方法或者建议。
ASP工作机理
Active Server Page技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。ASP脚本是采用明文(plain text)方式来编写的。
ASP脚本是一系列按特定语法(目前支持vbscript和jscript两种脚本语言)编写的,与标准HTML页面混合在一起的脚本所构成的文本格式的文件。当客户端的最终用户用WEB浏览器通过INTERNET来访问基于ASP脚本的应用时,WEB浏览器将向WEB服务器发出HTTP请求。WEB服务器分析、判断出该请求是ASP脚本的应用后,自动通过ISAPI接口调用ASP脚本的解释运行引擎(ASPDLL)。ASPDLL将从文件系统或内部缓冲区获取指定的ASP脚本文件,接着就进行语法分析并解释执行。最终的处理结果将形成HTML格式的内容,通过WEB服务器"原路"返回给WEB浏览器,由WEB浏览器在客户端形成最终的结果呈现。这样就完成了一次完整的ASP脚本调用。若干个有机的ASP脚本调用就组成了一个完整的ASP脚本应用。
让我们来看看运行ASP所需的环境:
Microsoft Internet Information Server 30/40/50 on NT Server
Microsoft Internet Information Server 30/40/50 on Win2000
Microsoft Personal Web Server on Windows 95/98
WINDOWS NT Option Pack所带的Microsoft IIS提供了强大的功能,但是IIS在网络安全方面却是比较危险的。因为很少有人会用Windows 95/98当服务器,因此本文我更多的从NT中的IIS安全问题来探讨。
微软自称的ASP的安全优点
虽然我们本文的重点是探讨ASP漏洞和后门,但是有必要谈谈ASP在网络安全方面的"优点",之所以加个"",是因为有时这些微软宣称的"优点"恰恰是其安全隐犯。微软称ASP在网络安全方面一大优点就是用户不能看到ASP的源程序,
从ASP的原理上看,ASP在服务端执行并解释成标准的HTML语句,再传送给客户端浏览器。"屏蔽"源程序能很好的维护ASP开发人员的版权,试想你辛辛苦苦做了一个很优秀的程序,给人任意COPY,你会怎么想?而且黑客还能分析你的ASP程序,挑出漏洞。更重要的是有些ASP开发者喜欢把密码,有特权的用户名和路径直接写在程序中,这样别人通过猜密码,猜路径,很容易找到攻击系统的"入口"。但是目前已经发现了很多能查看ASP源程序的漏洞,后面我们还要讨论。
IIS支持虚拟目录,通过在"服务器属性"对话框中的"目录"标签可以管理虚拟目录。建立虚拟目录对于管理WEB站点具有非常重要的意义。虚拟目录隐藏了有关站点目录结构的重要信息。因为在浏览器中,客户通过选择"查看源代码",很容易就能获取页面的文件路径信息,如果在WEB页中使用物理路径,将暴露有关站点目录的重要信息,这容易导致系统受到攻击。其次,只要两台机器具有相同的虚拟目录,你就可以在不对页面代码做任何改动的情况下,将WEB页面从一台机器上移到另一台机器。还有就是,当你将WEB页面放置于虚拟目录下后,你可以对目录设置不同的属性,如:Read、Excute、Script。读访问表示将目录内容从IIS传递到浏览器。而执行访问则可以使在该目录内执行可执行的文件。当你需要使用ASP时,就必须将你存放asp文件的目录设置为"Excute(执行)"。建议大家在设置WEB站点时,将HTML文件同ASP文件分开放置在不同的目录下,然后将HTML子目录设置为"读",将ASP子目录设置为"执行",这不仅方便了对WEB的管理,而且最重要的提高了ASP程序的安全性,防止了程序内容被客户所访问。
ASP漏洞分析和解决方法
有人说一台不和外面联系的电脑是最安全的电脑,一个关闭所有端口,不提供任何服务的电脑也是最安全的。黑客经常利用我们所开放的端口实施攻击,这些攻击最常见的是DDOS(拒绝服务攻击)下面我会列出ASP的二十几个漏洞,每个漏洞都会有漏洞描述和解决方法。
1 在ASP程序后加个特殊符号,能看到ASP源程序
受影响的版本:
win95+pws
IIS30
98+pws4 不存在这个漏洞。
IIS40以上的版本也不存在这个漏洞。
问题描述:
这些特殊符号包括小数点,%81, ::
http://someurl/somepageasp
http:// someurl/somepageasp%81
http:// someurl/somepageasp::
http:// someurl/somepageasp %2e
http:// someurl/somepage %2e%41sp
http:// someurl/somepage%2e%asp
http:// someurl/somepageasp %2e
http://someurl/msadc/samples/selector/showcodeaspsource=/msadc/samples///////bootini (可以看到bootini的文件内容)
那么在安装有IIS30和win95+PWS的浏览中就很容易看到somepageasp的源程序。究竟是什么原因造成了这种可怕的漏洞呢?究其根源其实是 Windows NT 特有的文件系统在做怪。有一点常识的人都知道在 NT 提供了一种完全不同于 FAT 的文件系统:NTFS,这种被称之为新技术文件系统的技术使得 NT 具有了较高的安全机制,但也正是因为它而产生了不少令人头痛的隐患。大家可能不知道, NTFS 支持包含在一个文件中 的多数据流,而这个包含了所有内容的主数据流被称之为"DATA",因此使得在浏览器 里直接访问 NTFS 系统的这个特性而轻易的捕获在文件中的脚本程序成为了可能。然而 直接导致 :: 的原因是由于 IIS 在解析文件名的时候出了问题,它没有很好地规范文件名。
解决方法和建议:
如果是Winodws NT用户,安装IIS40或者IIS50,Windows2000不存在这个问题。如果是win95用户,安装WIN98和PWS40。
2 ACCESS mdb 数据库有可能被下载的漏洞
问题描述:
在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够下载这个ACCESS数据库文件,这是非常危险的。比如:如果你的ACCESS数据库bookmdb放在虚拟目录下的database目录下,那么有人在浏览器中打入:
http:// someurl/database/bookmdb
如果你的bookmdb数据库没有事先加密的话,那bookmdb中所有重要的数据都掌握在别人的手中。
解决方法:
(1) 为你的数据库文件名称起个复杂的非常规的名字,并把他放在几目录下。所谓"非常规",打个比方:比如有个数据库要保存的是有关书籍的信息,可不要把他起个"bookmdb"的名字,起个怪怪的名称,比如d34ksfslfmdb,再把他放在如/kdslf/i44/studi/ 的几层目录下,这样黑客要想通过猜的方式得到你的ACCESS数据库文件就难上加难了。
(2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:
DBPath = ServerMapPath("cmddbmdb")
connOpen "driver={Microsoft Access Driver (mdb)};dbq=" & DBPath
假如万一给人拿到了源程序,你的ACCESS数据库的名字就一览无余。因此建议你在ODBC里设置数据源,再在程序中这样写:connopen "shujiyuan"
(3)使用ACCESS来为数据库文件编码及加密。首先在选取"工具->安全->加密/解密数据库,选取数据库(如:employermdb),然后接确定,接着会出现"数据库加密后另存为"的窗口,存为:employer1mdb。接着employermdb就会被编码,然后存为employer1mdb要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密,首先以打开经过编码了的employer1mdb,在打开时,选择"独占"方式。然后选取功能表的"工具->安全->设置数据库密码",接着输入密码即可。为employer1mdb设置密码之后,接下来如果再使用ACCEES数据库文件时,则ACCESS会先要求输入密码,验证正确后才能够启动数据库。不过要在ASP程序中的connection对象的open方法中增加PWD的参数即可,例如:
param="driver={Microsoft Access Driver (mdb)};Pwd=yfdsfs"
param=param&";dbq="&servermappath("employer1mdb")
connopen param
这样即使他人得到了employer1mdb文件,没有密码他是无法看到employer1mdb的。
3 codeasp文件会泄漏ASP代码
问题描述:
举个很简单的例子,在微软提供的 ASP10 的例程里有一个 asp 文件 ,专门用来查看其它 asp 文件的源代码,该文件为 ASPSamp/Samples/codeasp。如果有人把这个程序上传到服务器,而服务器端没有任何防范措施的话,他就可以很容易地查看他人的程序。例如 :
codeaspsource=/directory/fileasp
不过这是个比较旧的漏洞了,相信现在很少会出现这种漏洞。
下面这命令是比较新的:
http://someurl/iissamples/exair/howitworks/codeasp/lunwen/soushuoasp=xxxasp
最大的危害莫过于asa文件可以被上述方式读出;数据库密码以明文形式暴露在黑客眼前;
问题解决或建议:
对于IIS自带的show asp code的asp程序文件,删除该文件或者禁止访问该目录即可
4、filesystemobject 组件篡改下载 fat 分区上的任何文件的漏洞
问题描述:
IIS3、 IIS4 的 ASP 的文件操作都可以通过 filesystemobject 实现,包括文本文件的读写目录操作、文件的拷贝改名删除等,但是这个强大的功能也留下了非常危险的 "后门"。利用 filesystemobjet 可以篡改下载 fat 分区上的任何文件。即使是 ntfs 分区,如果权限没有设定好的话,同样也能破坏,一不小心你就可能遭受"灭顶之灾 "。遗憾的是很多 webmaster 只知道让 web 服务器运行起来,很少对 ntfs 进行权限 设置,而 NT 目录权限的默认设置偏偏安全性又低得可怕。因此,如果你是 Webmaster ,建议你密切关注服务器的设置,尽量将 web 目录建在 ntfs 分区上,目录不要设定 everyone full control,即使是是管理员组的成员一般也没什么必要 full control,只要有读取、更改权限就足够了。 也可以把filesystemobject的组件删除或者改名。
5、输入标准的HTML语句或者javascript语句会改变输出结果
问题描述:
在输入框中打入标准的HTML语句会得到什么相的结果呢?
比如一个留言本,我们留言内容中打入:
你好!
如果你的ASP程序中没有屏蔽html语句,那么就会改变"你好"字体的大小。在留言本中改变字体大小和贴图有时并不是什么坏事,反而可以使留言本生动。但是如果在输入框中写个 javascript 的死循环,比如:特大新闻
那么其他查看该留言的客人只要移动鼠标到"特大新闻",上就会使用户的浏览器因死循环而死掉。
解决方法和建议:
编写类似程序时应该做好对此类操作的防范,譬如可以写一段程序判断客户端的输入,并屏蔽掉所有的 HTML、 Javascrip
一、2003应用程序池自动死了,不能恢复了,一直出现 Service Unavailable 常见方法如下。
1:没有打SP1补丁的时候会出现这个IIS60假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了。(所以现在的IIS假死与这个关系不是很大)
2:从IIS60开始CPU资源都在应用池里面限制了,不象以前的IIS5。所以假死的池的缘故就是池被拉死,你在网站打不开的时候可以看到你的某个应用池是禁用的,上面出现一个红叉。你鼠标右键启动网站又会自动恢复。 这个原因:大概是以下几个因数造成的。
(1):你限制了应用池的资源,限制得太小 比如:50这样或更少更多一点,这个时候如果你这个池下面的网站占用CPU太高,比如超过50% 那么5分钟后他就自动死了,手工默认建立的应用池默认是超过资源不操作。
出现上面这个情况解决方法:1:不限制CPU资源,(这个是不可取的,不限制资源,有的程序有BUG占用资源厉害了的,服务器都会被拉死,你可能都无法操作服务器。)2:在超过资源那里选择关闭,这个关闭默认是失败5次,90秒内恢复,一般默认就可。网站能自动恢复,这个关闭:不是永久关闭,意思是超过资源关闭,然后在某时间内自动恢复池。不操作就是不恢复,这个是很多人的误区。
(2):内存限制 在IIS60应用池上面有虚拟内存和最大内存限制,如果你设置了这个。那么网站访问量大了 也会出现假死,所以不建议设置这里。默认就可。
3:就是服务器自身内存太小,网站运行当然需要使用到内存了,当内存不够的时候应用池也会死掉变成禁用。那么只有等内存全部释放出来才能恢复应用池了。出现这个情况:那么你就要考虑加内存或者检查到底是什么程序占用了内存了。比如MSSQL数据库,这个可是吃内存得大户啊,最好别和WEB服务器同时一个服务器上。很多人用1G内存做 2003系统,2003NET结构是很占用内存的,所以做服务器选2003还得把内存加到2G或更高才好。 内存不够上面 2点讲到的,是没办法操作了,也无法自动恢复。
4:就是ACCESS数据库太大或查询太多,这个也会出现把IIS拉死,解决方法;修复ACCESS数据库,或尽量少用ACCESS数据库,升级至sqlserver数据库;或者在技术方面革新,像现在有些网站系统,风讯、动易等cms;pjblog、zblog等博客程序,都支持生成静态功能
5:不同网站用不同应用池:根据你自己实际情况而定,站点大的最好独立一个应用池,限制他的资源超过了自动回收,看上面(1)讲到的,这样就不影响其他站点。中型站点:多个网站共用一个应用池,比如5个站点用一个池,设置他资源时间等等。这样他们就算超资源了也不影响其他应用池的网站。
6:设置回收时间:很多人以为设置回收池越短越好,其实是错误的,每次回收当然是把内存回收回来了,但加重了一次服务器的负担,当服务器比较繁忙的时候,有可能导致其他应用池死。所以建议设置共1000就行了。其他独立池按照他网站流量而设置 可以设置600 也行,共用的不建议设置太短。
7:网站后台过不了多久自动退出又要重新登陆:这个情况就是你设置回收时间太短了,按照 6点设置吧。 不要设置什么20分、30分这样的,这样不好的。另外一个原因就是和站的响应设置时间有关,设置得稍长些。
8:windows 2003系统iis6访问本机的站点时提示“Service Unavailable”;
查看iis的应用程序池,状况提示为:未指定错误,同时应用程序池自动停止运行;
用事件查看器查看系统错误日志,发现如下提示:
-----------------------------------
应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为
{A9E69610-B80D-11D0-B9B9-00A0C922E750}
)的 本地 激活 权限授予用户 NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)。可以使用组件服务管理工具修改此安全权限。
解决方法,给NETWORK SERVICE 加上访问iis服务的权限,具体方法如下:
点击“开始”-“控制面板”-“管理工具”-“组件服务”-“计算机”-“我的电脑”-“DCOM”选项,
选择其下的“IIS ADMIN SERVICE”,右健选择“属性”,找到“安全”,在“启动和激活权限”中编辑“自定义”,添加帐号“NETWORK SERVICE ”,给该帐号赋予“本地启动”和“本地激活”的权限,重新启动IIS之后再访问同一站点,则一切正常。
9:重启IIS中的特定应用程序池命令和自动重启的方法
在操作系统是Windows server 2003 SP1+的情况下,可以用以下命令部分重启IIS应用程序池:
cscriptexe c:\windows\system32\iisappvbs /a "DefaultAppPool"
其中/a 代表alternatively,"DefaultAppPool"代表应用程序池的实例名。如果要设置自动重启这个应用程序池,可以尝试放在批处理中,用计划任务调用此批处理即可。很多人觉得计划任务不安全,都要禁掉,事实上,计划任务的不安全是建立在其它方面不安全的前提上的,如果由于其它方面的不安全,被放入执行程序,计划任务执行,这和计划任务没有直接关系。当然,关掉,是会减少一些安全隐患,这是不错。
宕机,指操作系统无法从一个严重系统错误中恢复过来,或系统硬件层面出问题,以致系统长时间无响应,而不得不重新启动计算机的现象。对于iis服务器假死,相信很多管理者都遇到过,下面一起看看原因和解决方法!
单个网站解决方法:
把应用程序池回收时间缩短到300-600分钟,其间回收过程中,需要占用一点CPU资源,没办法,为了稳定性,再把回收时间设为凌晨5点。
多网站解决方法:
假设一台服务器目前拉了70个网站左右,那么可以新建六个应用程序池,把每个池回收时间缩小到300分钟,然后再分配每个池10个网站左右(这个分配是要求你的网站访问量所定)如果某个网站,访问量大,就单独给他一个程序池,但是这样做的后果就是需要大内存,一个池现在占用120M内存左右,反正内存大,没关系。那么多网站如何分配应用程序池,打开IIS--查看你要分配的网站属性,,查看主目录--在下面 你就会看到应用程序池了,分配一个就行了。
大家在使用iis6时如果装了动网论坛肯定有出现过iis6假死现像就是asp网页打开慢但是iis却是正常的静态网页打开速度一样这时候我一直是重启的方法查了官方的资料结果没有
据官方资料说win2003很快就要打这个补丁了是iis6对access驱动支持不理像也算是一个bug吧由于服务器虚拟主机多而且大多支持asp如果一旦假死就无法运行在多方面的资料查找下找到了一个比较简单的方法具体测试是通过了iis6自带数据应用程序池现在就利用他来解决假死
首先把bbs设一个单独的目录然后点击应用程序池新建应用程序池输入应用程序池id
然后把bbs的虚拟目录下面的就用程序池选择刚才新建的应用程序池
然后再回到刚才设好的应用程序池点击属性把回收工作进程数(分钟)及回收工作进程数还有在下列时间回收时间进程勾上然后在下列时间回收程序池里左边添加选择一个时间一般来说网站到凌晨3点的时候基本人都很少了这时回收一下bbs的进程数就可以解决了iis假死的现像
当然还可以配置其他信息比如说iis6的用户名 我们可以打开计处机管理然后打开计算机用户管理添加一个用户设置好后在应用程序池里面标识把添加的用户放上去用用户来测试回收的进程当然还有其他配置其实很简单只要你好好看一下就能明白意思
对于部分人来说这种方法可能不太方便所以可以用一个工具来回收应用程序池这样方便而且快捷个人用户当然不需要这种工具公司用户的话服务器压力挺大所以都用工具来解决一些问题所括iis的备分及虚拟主机ip的统一修改及端口访问的ip记录用批处理是一个很简单又方便的方法所以把一台服务器做的安全并不是哪么容易的事特别是iis经常去官方网站搜索资料是一个好习惯还有就是经常性的访问日志及注册表的用户还有加载运行的程序及服务也是一个好方法所以要学会如何遇到问题如何处理问题!!!!
补充:预防死机的小技巧
1、不要在同个硬盘安装多个操作系统
2、不要一次性打开多个网页浏览
3、在关闭电脑时,不要直接按电源按钮,否则会导致文件丢失,下次使用不能正常开机导致死机
4、别让CPU、显卡超频,电脑温度过高
5、及时清理机箱内的灰尘
6、更换电脑硬件配置时,一定要插牢固
7、不要使用来历不明的软件和光盘,以免传染病毒
8、对系统文件或重要文件,最好使用隐含属性,以免因误操作而删除或覆盖这些文件
9、在安装应用软件时,若提示是否覆盖当前文件,一定不要覆盖,通常当前的系统文件是最好的
10、在运行大型应用软件时,不要在运行状态下退出以前运行的程序,否则会引起整个Windows崩溃
相关阅读:死机宕机实例介绍
自2015年3月11日下午5点起,据苹果用户反应AppStore、Mac AppStore、iTunesStore均为宕机状态,iTunes Connect无法登陆,iBooks商店没有响应。此外,iOS和Mac的应用商店也出现了大面积瘫痪。并显示为“所有用户不可用”。此次服务中断时间长达11个小时,甚为罕见。苹果公司在一份电子邮件声明中表示,服务中断是由于内部系统错误引起的。
2014年1月21日,大量QQ用户反映,腾讯的第三方登录出现故障,不少第三方服务使用QQ都登录不上。不仅是第三方登录,QQ邮箱也无法正常使用。这次受影响范围很大,腾讯的第三方登录服务器出现了宕机。
不属于web服务器的安全措施的是强制用户使用不易被破解的密码。Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache、Nginx、IIS。
加强Web服务器的安全防护的措施有:
1、加强Web服务器的安全设置。以Linux为操作平台的Web服务器的安全设置策略,能够有效降低服务器的安全隐患,以确保Web服务器的安全性,主要包括:登录有户名与密码的安全设置、系统口令的安全设置、BIOS的安全设置、使用SSL通信协议、命令存储的修改设置、隐藏系统信息、启用日志记录功能以及设置Web服务器有关目录的权限等。
2、加强互联网的安全防范。Web服务器需要对外提供服务,它既有域名又有公网的网址,显然存在一些安全隐患。所以,可给予Web服务器分配私有的地址,并且运用防火墙来做NAT可将其进行隐藏;同时因为一些攻击来源于内网的攻击,比如把内网计算机和Web服务器存放在相同的局域网之内,则在一定程度上会增加很多安全隐患,所以必须把它划分为不同的虚拟局域网,运用防火墙的地址转换来提供相互间的访问,这样就大大提高了Web服务器的安全性和可靠性;把Web服务器连接至防火墙的DMZ端口,将不适宜对外公布的重要信息的服务器放于内部网络,进而在提供对外的服务的同时,可以最大限度地保护好内部网络。
3、网络管理员要不断加强网络日常安全的维护与管理。要对管理员用户名与密码定期修改;要对Web服务器系统的新增用户情况进行定时核对,并且需要认真仔细了解网络用户的各种功能;要及时给予更新Web服务器系统的杀毒软件以及病毒库,必要时可针对比较特殊的病毒给予安装专门杀毒的程序,同时要定期查杀Web服务器的系统病毒,定期查看CPU的正常工作使用状态、后台工作进程以及应用程序,假若发现异常情况需要及时给予妥当处理;因为很多木马与病毒均是运用系统漏洞来进行攻击的,所以需要不断自动更新Web服务器系统,以及定期扫描Web服务器系统的漏洞。
IIS高性能服务器安全设置的重要性在于首先是删除不必要的端口,服务和用户组和用户以及删除不必要的网站文件,特别是可以写入的程序文件。然后是给每个网站配置独立的访客账户,独立的数据库,独立的应用程序池以及给每个网站设置好读写权限再然后它还可写入的不能有执行权限,可执行的不能有写入权限和给服务器系统打好安全补丁。之后它可以给网站系统打好安全补丁,给网站做好安全备份和给服务器做好杀毒措施,最后它可以做好网站后台安全设置。感兴趣的话点击此处,免费了解一下
IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。IIS是企业识别体系重要的有机组成部分,是互联网时代企业必须关注的并进行有效管理的领域。是企业在互联网上的名片,能让企业更好的拥抱互联网时代。
亿万克为民族高科技制造企业领导者,自主知识产权,十大关键核心技术,为党政、金融、医疗、教育、电信、电力、交通和制造等各行业和领域的信息化发展和数字化转型提供安全可靠的自主创新解决方案。亿万克服务器真正做到了自主研发、能力内化、安全可信和安全可控。
0条评论