百度站长平台今日测试漏洞检测工具,并在资料区增加了漏洞监测工具的帮助文件。关于漏洞类型说明、漏洞危害、及漏洞解决方案做出如下解释。
一、漏洞类型说明
1.对外开放服务
对外开放服务是指网站服务器对外提供的各项服务,每项服务对应着一个端口号。常见的有:HTTP服务常用端口号为80/8080,FTP服务常用端口号为21,Telnet服务常用端口号为23。
2.SQL注入漏洞
SQL注入漏洞,是发生在应用程序数据库层面上的安全漏洞。在设计不良的程序中,由于忽略了对输入字符串中夹带SQL指令的检查,使得夹带进去的SQL指令被数据库误认为是合法的SQL指令而运行,从而使数据库受到攻击,会导致网站数据被窃取、更改和删除。
3.XSS跨站脚本漏洞
XSS跨站脚本漏洞发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、偷取密码、传播恶意代码等攻击行为。攻击者将对客户端有危害的代码放到服务器上作为一个网页内容,网站用户浏览此网页时,代码会注入到用户浏览器中执行,使用户受到攻击。一般而言,XSS跨站脚本漏洞分为三类:反射型跨站脚本漏洞、存储型跨站脚本漏洞和DOM型跨站脚本漏洞。
4.信息泄露漏洞
CGI漏洞
CGI是公用网关接口(Common Gateway Inerface)的简称,并不特指一种语言。CGI漏洞包括:Web服务器软件编写中的BUG和服务器配置的错误。CGI漏洞分为以下几类:配置错误、边界条件错误、访问验证错误、来源验证错误、输入验证错误、策略错误、使用错误等。
内容泄露漏洞
内容泄露漏洞,是指网站内容中出现比较敏感的可能危害网站安全的数据,会增加攻击者的攻击手段和攻击范围。
文件泄露漏洞
文件泄露漏洞,是由于服务器配置或程序设计缺陷,而绕过目录或权限的限制,使用户可以访问到无权访问的文件,包括但不限于:各类配置文件,操作系统敏感文件,网站程序源码,数据库文件,备份文件,系统日志等。
5.HTTP方法
HTTP方法是指,使用HTTP协议来请求网站页面时所使用到的请求方法。常见的HTTP方法有:
GET:请求指定的页面信息,并返回实体主体。
HEAD:只请求页面的首部。
POST:请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
PUT:从客户端向服务器传送的数据取代指定的文档的内容。
DELETE:请求服务器删除指定的页面。
OPTIONS:允许客户端查看服务器的性能。
TRACE:请求服务器在响应中的实体主体部分返回所得到的内容。
二、漏洞的危害
1.对外开放服务
黑客必须借由网站服务器的对方开放服务,才能展开攻击行为。
若网站服务器存在不必要的对外服务,会提高网站服务器的安全风险,增加黑客成功入侵的机率。
2.SQL注入漏洞
SQL注入漏洞的危害不仅体现在数据库层面,还有可能危及承载数据库的操作系统;如果SQL注入被用来挂马,还可能用来传播恶意软件等,这些危害包括但不限于:
数据库信息泄漏:数据库中存储的用户隐私信息泄露。
网页篡改:通过操作数据库对特定网页进行篡改。
网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
服务器被远程控制,被安装后门:经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
破坏硬盘数据,瘫痪全系统。
3.XSS跨站脚本漏洞
XSS跨站脚本漏洞的危害包括但不限于:
钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者注入钓鱼Javascript以监控目标网站的表单输入,甚至发起基于DHTML更高级的钓鱼攻击方式。
网站挂马:跨站后利用IFrame嵌入隐藏的恶意网站或者将被攻击者定向到恶意网站上,或者弹出恶意网站窗口等方式都可以进行挂马攻击。
身份盗用:Cookie是用户对于特定网站的身份验证标志,XSS可以盗取用户的Cookie,从而利用该Cookie获取用户对该网站的操作权限。如果一个网站管理员用户Cookie被窃取,将会对网站引发巨大的危害。
盗取网站用户信息:当能够窃取到用户Cookie从而获取到用户身份时,攻击者可以获取到用户对网站的操作权限,从而查看用户隐私信息。
垃圾信息发送:比如在SNS社区中,利用XSS漏洞借用被攻击者的身份发送大量的垃圾信息给特定的目标群体。
劫持用户Web行为:一些高级的XSS攻击甚至可以劫持用户的Web行为,监视用户的浏览历史,发送与接收的数据等等。
XSS蠕虫:XSS 蠕虫可以用来打广告、刷流量、挂马、恶作剧、破坏网上数据、实施DDoS攻击等。
4.信息泄露漏洞
CGI漏洞
CGI漏洞大多分为以下几种类型:信息泄露、命令执行和溢出,因此危害的严重程度不一。信息泄露会暴露服务器的敏感信息,使攻击者能够通过泄露的信息进行进一步入侵;命令执行会对服务器的安全造成直接的影响,如执行任意系统命令;溢出往往能够让攻击者直接控制目标服务器,危害重大。
内容泄露漏洞
内容泄露漏洞,会被攻击者利用导致其它类型的攻击,危害包括但不局限于:
内网ip泄露:可能会使攻击者渗透进入内网产生更大危害。
数据库信息泄露:让攻击者知道数据库类型,会降低攻击难度。
网站调试信息泄露:可能让攻击者知道网站使用的编程语言,使用的框架等,降低攻击难度。
网站目录结构泄露:攻击者容易发现敏感文件。
绝对路径泄露:某些攻击手段依赖网站的绝对路径,比如用SQL注入写webshell。
电子邮件泄露:邮件泄露可能会被垃圾邮件骚扰,还可能被攻击者利用社会工程学手段获取更多信息,扩大危害。
文件泄露漏洞
敏感文件的泄露可能会导致重要信息的泄露,进而扩大安全威胁,这些危害包括但不局限于:
帐号密码泄漏:可能导致攻击者直接操作网站后台或数据库,进行一些可能有危害的操作。
源码泄露:可能会让攻击者从源码中分析出更多其它的漏洞,如SQL注入,文件上传,代码执行等。
系统用户泄露:可能会方便暴力破解系统密码。
5.HTTP方法
若网站服务器支持不必要的HTTP方法,会增加黑客入侵网站服务器的手段和途径。例如:若网站服务器支持PUT方法且允许匿名访问,则黑客可以发布未经授权的页面,或者上传二进制文件并诱使服务器执行,从而获取网站服务器的控制权。
三、漏洞解决方案
1.对外开放服务
关闭不必要的对外开放服务,以及相应端口。
2.SQL注入漏洞
解决SQL注入漏洞的关键是对所有来自用户输入的数据进行严格检查、对数据库配置使用最小权限原则。经常使用的解决方案有:
所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。
对进入数据库的特殊字符('"\<>&*;等)进行转义处理,或编码转换。
确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。
数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。
严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。
3.XSS跨站脚本漏洞
经常使用的解决方案有:
与SQL注入漏洞的方案一样,假定所有输入都是可疑的,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。
不要仅仅验证数据的类型,还要验证其格式、长度、范围和内容。
不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。
在网站发布之前建议测试所有已知的威胁。
4.信息泄露漏洞
CGI漏洞
针对不同类型的CGI漏洞有着不同的修复方法,最好的解决方案是在某CGI漏洞被披露之后,及时打上官方提供的补丁。站长在平时维护服务器时也要定期检查并更新相关CGI组件。
内容泄露漏洞
解决内容泄露漏洞经常使用的解决方案有:
禁用WEB服务器和服务器端语言的调试和报错信息。
禁用WEB服务器的目录浏览模式。
网站管理员和域名管理员邮箱请勿在SNS社交网络场合使用。
网站内容常检查,发现敏感信息及时清理。
文件泄露漏洞
解决文件泄露漏洞的关键是对下载功能的参数检验和用最小权限原则对系统服务做出合理的配置。经常使用的解决方案有:
具备下载功能的程序,在接受传入参数时,过滤“..”,“/”,“C:”等能绕过目录限制的特殊字符。
谨慎使用ftp,Windows文件共享等服务,如无必要,请不要启用匿名帐号。
若使用版本控制程序,发布代码时请务必排除.svn和 .git等敏感目录。
网站备份和数据库备份文件请勿置于外部可访问的目录中。
WEB服务器的动态程序扩展名的规则请注意大小写和特殊扩展(如.pHp, .jsP, .php.gif, .php3, .asa,.inc 等等)
及时修补SQL注入漏洞,因为SQL注入漏洞也可能会导致文件泄露。
避免*.bak, *.swp, *.swo等备份文件或临时交换文件发布到服务器上。
5.HTTP方法
禁用不必要且存在安全风险的HTTP方法,例如:TRACE/PUT/DELETE等。或使用加速乐保护您的网站。
百度站长平台的漏洞检测工具推荐了解决方案供应商,加速乐和Scanv。
A5创业网 版权所有