您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 第8章:Web攻击及防御技术
第8章Web攻击及防御技术张玉清国家计算机网络入侵防范中心本章内容安排8.1Web安全概述8.2Web服务器指纹识别8.3Web页面盗窃及防御8.4跨站脚本攻击及防御8.5SQL注入攻击及防御8.6GoogleHacking8.7网页验证码8.8防御Web攻击8.9小结2019/11/10网络入侵与防范讲义28.1Web安全概述在Internet大众化及Web技术飞速演变的今天,在线安全所面临的挑战日益严峻。伴随着在线信息和服务的可用性的提升,以及基于Web的攻击和破坏的增长,安全风险达到了前所未有的高度。Web安全可以从以下三个方面进行考虑:Web服务器的安全Web客户端的安全Web通信信道的安全2019/11/10网络入侵与防范讲义3Web服务器的安全针对Web服务器的攻击可以分为两类:一是利用Web服务器的漏洞进行攻击,如IIS缓冲区溢出漏洞利用、目录遍历漏洞利用等;二是利用网页自身的安全漏洞进行攻击,如SQL注入,跨站脚本攻击等。2019/11/10网络入侵与防范讲义4Web服务器的安全(2)针对Web服务器具体的安全威胁主要体现在以下几个方面:服务器程序编写不当导致的缓冲区溢出(BufferOverflow)并由此导致远程代码执行。针对服务器系统的拒绝服务攻击(DenialofService)。脚本程序编写不当、过滤不严格造成的数据库查询语句注入(SQLInjection),可能引起信息泄漏、文件越权下载、验证绕过、远程代码执行等。乐观相信用户输入、过滤不严导致跨站脚本攻击(CrossSiteScript),在欺骗管理员的前提下,通过精心设计的脚本获得服务端Shell。2019/11/10网络入侵与防范讲义5Web客户端的安全Web应用的迅速普及,客户端交互能力获得了极为充分的发挥,客户端的安全也成为Web安全的焦点问题。JavaApplet、ActiveX、Cookie等技术大量被使用,当用户使用浏览器查看、编辑网络内容时,采用了这些技术的应用程序会自动下载并在客户机上运行,如果这些程序被恶意使用,可以窃取、改变或删除客户机上的信息。2019/11/10网络入侵与防范讲义6Web客户端的安全(2)浏览网页所使用的浏览器存在众多已知或者未知的漏洞,攻击者可以写一个利用某个漏洞的网页,并挂上木马,当用户访问了这个网页之后,就中了木马。这就是网页木马,简称网马。同时,跨站脚本攻击(XSS)对于客户端的安全威胁同样无法忽视,利用XSS的Web蠕虫已经在网络中肆虐过。2019/11/10网络入侵与防范讲义7Web通信信道的安全和其他的Internet应用一样,Web信道同样面临着网络嗅探(Sniffer)和以拥塞信道、耗费资源为目的的拒绝服务攻击(DenialofService)的威胁。2019/11/10网络入侵与防范讲义88.1Web安全概述OWASP的调查结果显示,对Web应用危害较大的安全问题分别是:未验证参数访问控制缺陷账户及会话管理缺陷跨站脚本攻击缓冲区溢出命令注入错误处理远程管理Web服务器及应用服务器配置不当2019/11/10网络入侵与防范讲义92019/11/10网络入侵与防范讲义108.2Web服务器指纹识别8.2.1指纹识别理论8.2.2Web服务器指纹介绍8.2.3Web服务器Banner信息获取8.2.4模糊Web服务器Banner信息8.2.5Web服务器协议行为8.2.6Http指纹识别工具8.2.1指纹识别理论指纹的定义是这样的:一是指任何表面上的指尖印象或者是在指尖上蘸上墨水而在纸上留下的墨水印象;二是指可以用来识别的东西:如特色、痕迹或特性等揭露起源的东西,表示物体或物质的特色的证据。2019/11/10网络入侵与防范讲义11指纹识别理论(2)指纹识别可以分为两步:第一步是对指纹进行收集和分类;第二步是将未知的指纹同被储存在数据库中的指纹进行比较,从而找出最符合的。2019/11/10网络入侵与防范讲义12指纹识别理论(3)当采集指纹的时候,对物体的所有主要特性的抓取是必要的。采集较多的细节,可以对指纹识别的第二步产生很大的帮助。当比较指纹的时候,很有可能有几个指纹是被不合适匹配的,因为可指纹之间微小的差别很容易使识别产生错误,这也要求指纹识别需要很高的技术。2019/11/10网络入侵与防范讲义132019/11/10网络入侵与防范讲义148.2.2Web服务器指纹介绍Web服务器指纹:这个概念应用在Web服务器上,就是通过对服务器上的HTTP应用程序安装和配置等信息进行远程刺探,从而了解远程Web服务器的配置信息,然后根据不同版本的Web服务器进行有目的的攻击。这一步骤是web应用攻击的基础过程。Web服务器指纹介绍(2)Http指纹识别的原理大致上也是相同的:记录不同服务器对Http协议执行中的微小差别进行识别。Http指纹识别比TCP/IP堆栈指纹识别复杂许多,理由是定制Http服务器的配置文件、增加插件或组件使得更改Http的响应信息变的很容易,这样使得识别变的困难;然而定制TCP/IP堆栈的行为需要对核心层进行修改,所以就容易识别。2019/11/10网络入侵与防范讲义152019/11/10网络入侵与防范讲义168.2.3Web服务器Banner信息获取Banner:旗标,或标头。这里指获取web服务器的版本、欢迎语或其它提示信息,以找出可能的有利于攻击的内容。我们可以通过一个TCP客户端比如NetCat(NC)或者telnet与web服务器进行连接,并查看返回的应答信息。例如:使用telnet连接80端口,然后发送get命令来得到响应信息,比如下页的例子。2019/11/10网络入侵与防范讲义17telnet到80端口获得指纹信息C:\telnet返回结果:HTTP/1.1400BadRequestServer:Microsoft-IIS/5.0Date:Fri,05Sep200302:57:39GMTContent-Type:text/htmlContent-Length:87htmlheadtitleError/title/headbodyTheparameterisincorrect./body/html2019/11/10网络入侵与防范讲义18telnet到80端口获得指纹信息(2)注意到下划线标记的信息,很清楚的告诉我们运行的web服务器版本是Microsoft-IIS/5.0。2019/11/10网络入侵与防范讲义198.2.3Web服务器Banner信息获取那么我们能否得到更多的信息呢?不同的web服务器版本信息有什么不同?下面再以NetCat(“瑞士军刀”)为例,探测信息,参数为:Options*http/1.12019/11/10网络入侵与防范讲义20获得Apache2.0.x指纹sh-2.05b#nc*HTTP/1.1Host::Fri,05Sep200302:08:45GMTServer:Apache/2.0.40(RedHatLinux)Allow:GET,HEAD,POST,OPTIONS,TRACEContent-Length:0Content-Type:text/plain;charset=ISO-8859-12019/11/10网络入侵与防范讲义21不同服务器的指纹比较通过Apache2.0.x和IIS5.0指纹的比较,能够很清楚判断出不同服务器返回的信息的不同。当攻击者获得了这些指纹信息后,就可以针对不同的服务器,利用它们的漏洞进行有目的的攻击了。2019/11/10网络入侵与防范讲义228.2.4模糊Web服务器Banner信息为了防范查看Http应答头信息来识别Http指纹的行为,可以选择通过下面两种方法来更改或者是模糊服务器的Banner信息:自定义Http应答头信息增加插件这样设置可以自动的阻止很多对Http服务器的攻击,有时也可以误导攻击者。2019/11/10网络入侵与防范讲义23自定义HTTP应答头信息要让服务器返回不同的Banner信息的设置是很简单的,象Apache这样的开放源代码的Http服务器,用户可以在源代码里修改Banner信息,然后重起Http服务就生效了。对于没有公开源代码的Http服务器比如微软的IIS或者是Netscape,可以在存放Banner信息的Dll文件中修改。2019/11/10网络入侵与防范讲义24自定义HTTP应答头信息—实例下面就是一个被自定义Banner信息的Http服务器的例子,Apache服务器被自定义成了未知服务器:Http/1.1403ForbiddenDate:Mon,08Sep200302:41:27GMTServer:Unknown-Webserver/1.0Connection:closeContent-Type:text/html;charset=iso-8859-12019/11/10网络入侵与防范讲义25使用插件另一种模糊Banner信息的方法是使用插件,这些插件可以提供自定义的Http应答信息。比如ServerMask这个商业软件就可以提供这样的功能,它是IIS服务器的一个插件,ServerMask不仅模糊了Banner信息,而且会对Http应答头信息里的项的序列进行重新组合,从而来模仿Apache这样的服务器,它甚至有能力扮演成任何一个Http服务器来处理每一个请求。这个软件可以在以下地址找到:网络入侵与防范讲义26使用插件—实例下面是一个使用了ServerMask插件的IIS服务器的例子:Http/1.1200OKServer:YesweareusingServerMaskDate:Mon,08Sep200302:54:17GMTConnection:Keep-AliveContent-Length:18273Content-Type:text/htmlSet-Cookie:Itworksoncookiestoo=82.3S3.O12.NT2R0RE,4147ON3P,.4OO.;path=/Cache-control:private8.2.5Web服务器协议行为在执行Http协议时,几乎所有的Http服务器都具有它们独特的方法,如果Http请求是合法并且规则的,Http服务器返回的应答信息是符合RFC里的描述的。但是如果我们发送畸形的Http请求,这些服务器的响应信息就不同了,不同服务器对Http协议行为表现的不同就是Http指纹识别技术的基本根据和原理。2019/11/10网络入侵与防范讲义27协议行为分析实例我们继续来用实例说明。我们将分析3种不同Http服务对不同请求所返回的响应信息,这些请求是这样的:1:HEAD/Http/1.0发送基本的Http请求2:DELETE/Http/1.0发送不被允许的请求,如Delete请求3:GET/Http/3.0发送一个非法版本的Http协议请求4:GET/JUNK/1.0发送一个不正确规格的Http协议请求2019/11/10网络入侵与防范讲义28Exp1:基本的Http请求我们先发送请求HEAD/Http/1.0,然后分析Http响应头里的信息,对头信息里项的排序进行分析。发送的请求命令如下:C:\ncapache.example.com80HEAD/Http/1.0三个服务器的响应信息参见下面三页。比较结果:Apache头信息里的Server和Date项的排序是不同的。2019/
本文标题:第8章:Web攻击及防御技术
链接地址:https://www.777doc.com/doc-1794354 .html