1、网络入侵与防范讲义1第第9 9章章 WebWeb攻击及防御技术攻击及防御技术2022-12-4网络入侵与防范讲义2本章内容安排本章内容安排o 9.1 Web安全概述安全概述o 9.2 Web服务器指纹识别服务器指纹识别o 9.3 Web页面盗窃及防御页面盗窃及防御o 9.4 跨站脚本攻击及防御跨站脚本攻击及防御o 9.5 SQL注入攻击及防御注入攻击及防御o 9.6 Google Hackingo 9.7 网页验证码网页验证码o 9.8 防御防御Web攻击攻击o 9.9 小结小结2022-12-4网络入侵与防范讲义39.1 Web安全概述安全概述o Web安全面临的挑战日益严峻。安全风险安全面
2、临的挑战日益严峻。安全风险达到了前所未有的高度。达到了前所未有的高度。o Web安全可以从以下三个方面进行考虑:安全可以从以下三个方面进行考虑:n Web服务器的安全n Web客户端的安全n Web通信信道的安全2022-12-4网络入侵与防范讲义4Web服务器的安全服务器的安全o 针对针对Web服务器的攻击可以分为两类:服务器的攻击可以分为两类:n 一是利用Web服务器的漏洞进行攻击,如IIS缓冲区溢出漏洞利用、目录遍历漏洞利用等;n 二是利用网页自身的安全漏洞进行攻击,如SQL注入,跨站脚本攻击等。2022-12-4网络入侵与防范讲义5Web服务器的安全服务器的安全(2)o 针对针对Web
3、服务器具体的安全威胁主要体现在以下几个服务器具体的安全威胁主要体现在以下几个方面:方面:n服务器程序编写不当导致的缓冲区溢出(Buffer Overflow)并由此导致远程代码执行。n针对服务器系统的拒绝服务攻击(Denial of Service)。n脚本程序编写不当、过滤不严格造成的数据库查询语句注入(SQL Injection),可能引起信息泄漏、文件越权下载、验证绕过、远程代码执行等。n乐观相信用户输入、过滤不严导致跨站脚本攻击(Cross Site Script),在欺骗管理员的前提下,通过精心设计的脚本获得服务端Shell。2022-12-4网络入侵与防范讲义6Web客户端的安全客
4、户端的安全o Web应用的普及,客户端交互能力获得了应用的普及,客户端交互能力获得了极为充分的发挥,客户端的安全也成为极为充分的发挥,客户端的安全也成为Web安全的焦点问题。安全的焦点问题。o Java Applet、ActiveX、Cookie等技等技术大量被使用,当用户使用浏览器查看、编术大量被使用,当用户使用浏览器查看、编辑网络内容时,采用了这些技术的应用程序辑网络内容时,采用了这些技术的应用程序会自动下载并在客户机上运行,如果这些程会自动下载并在客户机上运行,如果这些程序被恶意使用,可以窃取、改变或删除客户序被恶意使用,可以窃取、改变或删除客户机上的信息。机上的信息。2022-12-4
5、网络入侵与防范讲义7Web客户端的安全客户端的安全(2)o 浏览网页所使用的浏览器存在众多已知或者浏览网页所使用的浏览器存在众多已知或者未知的漏洞,攻击者可以写一个利用某个漏未知的漏洞,攻击者可以写一个利用某个漏洞的网页,并洞的网页,并挂上木马挂上木马,当用户访问了这个,当用户访问了这个网页之后,就中了木马。这就是网页木马,网页之后,就中了木马。这就是网页木马,简称网马。简称网马。o 跨站脚本攻击跨站脚本攻击(XSS)对于客户端的安全威对于客户端的安全威胁同样无法忽视,利用胁同样无法忽视,利用XSS的的Web蠕虫已蠕虫已经在网络中肆虐过。经在网络中肆虐过。2022-12-4网络入侵与防范讲义8
6、Web通信信道的安全通信信道的安全o 和其他的和其他的Internet应用一样,应用一样,Web信道同信道同样面临着样面临着网络嗅探网络嗅探和以拥塞信道、耗费资源和以拥塞信道、耗费资源为目的的为目的的拒绝服务拒绝服务攻击的威胁。攻击的威胁。2022-12-4网络入侵与防范讲义99.1 Web安全概述安全概述o OWASP的调查结果显示,对的调查结果显示,对Web应用危害较大的安应用危害较大的安全问题分别是:全问题分别是:n未验证参数n访问控制缺陷n账户及会话管理缺陷n跨站脚本攻击n缓冲区溢出n命令注入n错误处理n远程管理nWeb服务器及应用服务器配置不当2022-12-4网络入侵与防范讲义10
7、9.2 Web服务器指纹识别服务器指纹识别o 9.2.1 指纹识别理论指纹识别理论o 9.2.2 Web服务器指纹介绍服务器指纹介绍o 9.2.3 Web服务器服务器Banner信息获取信息获取o 9.2.4 模糊模糊Web服务器服务器Banner信息信息o 9.2.5 Web服务器协议行为服务器协议行为o 9.2.6 Http指纹识别工具指纹识别工具2022-12-4网络入侵与防范讲义119.2.1 指纹识别理论指纹识别理论o 指纹的定义是这样的:指纹的定义是这样的:n 一是指任何表面上的指尖印象或者是在指尖上蘸上墨水而在纸上留下的墨水印象;n 二是指可以用来识别的东西:如特色、痕迹或特性等
8、揭露起源的东西,表示物体或物质的特色的证据。2022-12-4网络入侵与防范讲义12指纹识别理论指纹识别理论(2)o 指纹识别可以分为两步:指纹识别可以分为两步:n 第一步是对指纹进行收集和分类;n 第二步是将未知的指纹同被储存在数据库中的指纹进行比较,从而找出最符合的。2022-12-4网络入侵与防范讲义13指纹识别理论指纹识别理论(3)o 当采集指纹的时候,对物体的所有主要特性当采集指纹的时候,对物体的所有主要特性的抓取是必要的。采集较多的细节,可以对的抓取是必要的。采集较多的细节,可以对指纹识别的第二步产生很大的帮助。指纹识别的第二步产生很大的帮助。o 当比较指纹的时候,很有可能有几个指
9、纹是当比较指纹的时候,很有可能有几个指纹是被不合适匹配的,因为指纹之间微小的差别被不合适匹配的,因为指纹之间微小的差别很容易使识别产生错误,这也要求指纹识别很容易使识别产生错误,这也要求指纹识别需要很高的技术。需要很高的技术。2022-12-4网络入侵与防范讲义149.2.2 Web服务器指纹介绍服务器指纹介绍o Web服务器指纹:这个概念应用在服务器指纹:这个概念应用在Web服服务器上,就是通过对服务器上的务器上,就是通过对服务器上的HTTP应用程应用程序安装和配置等信息进行远程刺探,从而了序安装和配置等信息进行远程刺探,从而了解远程解远程Web服务器的配置信息,然后根据不服务器的配置信息,
10、然后根据不同版本的同版本的Web服务器进行有目的的攻击。服务器进行有目的的攻击。o 这一步骤是这一步骤是web应用攻击的基础过程。应用攻击的基础过程。2022-12-4网络入侵与防范讲义15Web服务器指纹介绍服务器指纹介绍(2)o Http指纹识别的原理大致上也是相同的:记录指纹识别的原理大致上也是相同的:记录不同服务器对不同服务器对Http协议执行中的微小差别进行协议执行中的微小差别进行识别。识别。o Http指纹识别比指纹识别比TCP/IP堆栈指纹识别复杂许堆栈指纹识别复杂许多,理由是定制多,理由是定制Http服务器的配置文件、增加服务器的配置文件、增加插件或组件使得更改插件或组件使得更
11、改Http的响应信息变的很容的响应信息变的很容易,这样使得识别变的困难;然而定制易,这样使得识别变的困难;然而定制TCP/IP堆栈的行为需要对核心层进行修改,堆栈的行为需要对核心层进行修改,所以就容易识别。所以就容易识别。2022-12-4网络入侵与防范讲义169.2.3 Web服务器服务器Banner信息获取信息获取o Banner:旗标,或标头。这里指获取:旗标,或标头。这里指获取web服务器的版本、欢迎语或其它提示信服务器的版本、欢迎语或其它提示信息,以找出可能的有利于攻击的内容。息,以找出可能的有利于攻击的内容。o 可以通过一个可以通过一个TCP客户端比如客户端比如NetCat(NC)
12、或者或者telnet与与web服务器进行连接,并查服务器进行连接,并查看返回的应答信息。看返回的应答信息。2022-12-4网络入侵与防范讲义17telnet到到80端口获得指纹信息端口获得指纹信息o C:telnet 80 Geto 返回结果:返回结果:oHTTP/1.1 400 Bad RequestServer:Microsoft-IIS/5.0Date:Fri,05 Sep 2003 02:57:39 GMTContent-Type:text/htmlContent-Length:87ErrorThe parameter is incorrect.2022-12-4网络入侵与防范讲义1
13、8telnet到到80端口获得指纹信息端口获得指纹信息(2)o 注意到下划线标记的信息,很清楚的告诉我注意到下划线标记的信息,很清楚的告诉我们运行的们运行的web服务器版本是服务器版本是Microsoft-IIS/5.0。2022-12-4网络入侵与防范讲义199.2.3 Web服务器服务器Banner信息获取信息获取o 以以NetCat(“瑞士军刀瑞士军刀”)为例,探测网)为例,探测网站的站的Banner信息,参数为:信息,参数为:Options*http/1.12022-12-4网络入侵与防范讲义20获得获得Apache2.0.x指纹指纹o sh-2.05b#nc 80OPTIONS*HT
14、TP/1.1o Host:HTTP/1.1 200 OKDate:Fri,05 Sep 2003 02:08:45 GMTServer:Apache/2.0.40(Red Hat Linux)Allow:GET,HEAD,POST,OPTIONS,TRACEContent-Length:0Content-Type:text/plain;charset=ISO-8859-12022-12-4网络入侵与防范讲义21不同服务器的指纹比较不同服务器的指纹比较o 通过通过Apache2.0.x和和IIS5.0指纹的比指纹的比较,能够很清楚判断出不同服务器返回的较,能够很清楚判断出不同服务器返回的信息的不
15、同。信息的不同。o 当攻击者获得了这些指纹信息后,就可以当攻击者获得了这些指纹信息后,就可以针对不同的服务器,利用它们的漏洞进行针对不同的服务器,利用它们的漏洞进行有目的的攻击了。有目的的攻击了。2022-12-4网络入侵与防范讲义229.2.4 模糊模糊Web服务器服务器Banner信息信息o 为了防范查看为了防范查看Http应答头信息来识别应答头信息来识别Http指纹的行为,可以选择通过下面两种方法来指纹的行为,可以选择通过下面两种方法来更改或者是模糊服务器的更改或者是模糊服务器的Banner信息:信息:n 自定义Http应答头信息n 增加插件o 这样设置可以自动的阻止很多对这样设置可以自
16、动的阻止很多对Http服务服务器的攻击,有时也可以误导攻击者。器的攻击,有时也可以误导攻击者。2022-12-4网络入侵与防范讲义23自定义自定义HTTP应答头信息应答头信息o 要让服务器返回不同的要让服务器返回不同的Banner信息的设置信息的设置是很简单的,象是很简单的,象Apache这样的开放源代这样的开放源代码的码的Http服务器,用户可以在源代码里修服务器,用户可以在源代码里修改改Banner信息,然后重起信息,然后重起Http服务就生服务就生效了。效了。o 对于没有公开源代码的对于没有公开源代码的Http服务器比如微服务器比如微软的软的IIS或者是或者是Netscape,可以在存放
17、,可以在存放Banner信息的信息的Dll文件中修改。文件中修改。2022-12-4网络入侵与防范讲义24自定义自定义HTTP应答头信息应答头信息实例实例o 下面就是一个被自定义下面就是一个被自定义Banner信息的信息的Http服务器的例子,服务器的例子,Apache服务器被自定义成了服务器被自定义成了未知服务器:未知服务器:Http/1.1403ForbiddenDate:Mon,08Sep200302:41:27GMTServer:Unknown-Webserver/1.0Connection:closeContent-Type:text/html;charset=iso-8859-12
18、022-12-4网络入侵与防范讲义25使用插件使用插件o 另一种模糊另一种模糊Banner信息的方法是使用插件,这些插件信息的方法是使用插件,这些插件可以提供自定义的可以提供自定义的Http应答信息。应答信息。o 比如比如ServerMask这个商业软件就可以提供这样的功这个商业软件就可以提供这样的功能,它是能,它是IIS服务器的一个插件,服务器的一个插件,ServerMask不仅不仅模糊了模糊了Banner信息,而且会对信息,而且会对Http应答头信息里的应答头信息里的项的序列进行重新组合,从而来模仿项的序列进行重新组合,从而来模仿Apache这样的这样的服务器,它甚至有能力扮演成任何一个服
19、务器,它甚至有能力扮演成任何一个Http服务器来服务器来处理每一个请求。处理每一个请求。2022-12-4网络入侵与防范讲义26使用插件使用插件实例实例o 下面是一个使用了下面是一个使用了ServerMask插件的插件的IIS服务器服务器的例子:的例子:Http/1.1200OKServer:YesweareusingServerMask Date:Mon,08Sep200302:54:17GMTConnection:Keep-AliveContent-Length:18273Content-Type:text/htmlSet-Cookie:Itworksoncookiestoo=82.3S3
20、.O12.NT2R0RE,4147ON3P,.4OO.;path=/Cache-control:private2022-12-4网络入侵与防范讲义279.2.5 Web服务器协议行为服务器协议行为o 在执行在执行Http协议时,几乎所有的协议时,几乎所有的Http服务服务器都具有它们独特的方法,如果器都具有它们独特的方法,如果Http请求请求是合法并且规则的,是合法并且规则的,Http服务器返回的应服务器返回的应答信息是符合答信息是符合RFC里的描述的。里的描述的。o 但是如果我们发送畸形的但是如果我们发送畸形的Http请求,这些请求,这些服务器的响应信息就不同了,不同服务器对服务器的响应信息
21、就不同了,不同服务器对Http协议行为表现的不同就是协议行为表现的不同就是Http指纹识指纹识别技术的基本根据和原理。别技术的基本根据和原理。2022-12-4网络入侵与防范讲义28协议行为分析实例协议行为分析实例o 继续来用实例说明。分析继续来用实例说明。分析3种不同种不同Http服务对不服务对不同请求所返回的响应信息,这些请求是这样的:同请求所返回的响应信息,这些请求是这样的:n1:HEAD/Http/1.0发送基本的Http请求n2:DELETE/Http/1.0发送不被允许的请求,如Delete请求n3:GET/Http/3.0发送一个非法版本的Http协议请求n4:GET/JUNK/
22、1.0发送一个不正确规格的Http协议请求2022-12-4网络入侵与防范讲义29Exp1:基本的:基本的Http请求请求o 先发送请求先发送请求HEAD/Http/1.0,然后分,然后分析析Http响应头里的信息,对头信息里项的响应头里的信息,对头信息里项的排序进行分析。发送的请求命令如下:排序进行分析。发送的请求命令如下:C:nc 80HEAD/Http/1.0o 三个服务器的响应信息参见下面。三个服务器的响应信息参见下面。o 比较结果:比较结果:Apache头信息里的头信息里的Server和和Date项的排序是不同的。项的排序是不同的。2022-12-4网络入侵与防范讲义30Apache
23、1.3.23o Http/1.1200OKDate:Mon,08Sep17:10:49GMTServer:Apache/1.3.23Last-Modified:Thu,27Feb200303:48:19GMTETag:32417-c4-3e5d8a83Accept-Ranges:bytesContent-Length:196Connection:closeContent-Type:text/html2022-12-4网络入侵与防范讲义31IIS5.0o Http/1.1200OKServer:Microsoft-IIS/5.0Content-Location:Date:Mon,08Sep20:
24、13:52GMTContent-Type:text/htmlAccept-Ranges:bytesLast-Modified:Mon,08Sep200310:10:50GMTETag:W/e0d362a4c335be1:ae1Content-Length:1332022-12-4网络入侵与防范讲义32NetscapeEnterprise4.1o Http/1.1200OKServer:Netscape-Enterprise/4.1Date:Mon,08Sep200306:01:40GMTContent-type:text/htmlLast-modified:Mon,08Sep200301:37
25、:56GMTContent-length:57Accept-ranges:bytesConnection:close2022-12-4网络入侵与防范讲义33Exp2:HttpDELETE请求请求o 发送发送DELETE/Http/1.0请求,分析不同请求,分析不同Http服务服务器对非法请求的应答信息的不同。器对非法请求的应答信息的不同。o 发送的请求命令:发送的请求命令:C:nc 80DELETE/Http/1.0o 三个服务器的响应信息参见下面三页。三个服务器的响应信息参见下面三页。o 比较结果:比较结果:nApache响应的是“405MethodNotAllowed”,nIIS响应的是“
26、403Forbidden”,nNetscape响应的是“401Unauthorized”,n对Delete请求,响应的信息是完全不同的。2022-12-4网络入侵与防范讲义34Apache1.3.23o Http/1.1 405 MethodNotAllowedDate:Mon,08Sep200317:11:37GMTServer:Apache/1.3.23Allow:GET,HEAD,POST,PUT,DELETE,CONNECT,OPTIONS,PATCH,PROPFIND,PROPPATCH,MKCOL,COPY,MOVE,LOCK,UNLOCK,TRACEConnection:clos
27、eContent-Type:text/html;charset=iso-8859-12022-12-4网络入侵与防范讲义35IIS5.0o Http/1.1 403 ForbiddenServer:Microsoft-IIS/5.0Date:Mon,08Sep200320:13:57GMTContent-Type:text/htmlContent-Length:31842022-12-4网络入侵与防范讲义36NetscapeEnterprise4.1o Http/1.1 401 UnauthorizedServer:Netscape-Enterprise/4.1Date:Mon,08Sep20
28、0306:03:18GMTWebServerServerContent-type:text/htmlConnection:close2022-12-4网络入侵与防范讲义37Exp3:非法:非法Http协议版本请求协议版本请求o 发送非法的发送非法的Http协议版本请求,比如协议版本请求,比如GET/Http/3.0请求,事实上请求,事实上Http3.0是不存在的,是不存在的,发送请求命令:发送请求命令:o C:nc 80o GET/Http/3.0o 响应信息见下面三页。响应信息见下面三页。o 比较结果:比较结果:nApache响应的是400BadRequest,nIIS忽略了这个请求,响应信
29、息是OK,还返回了网站根目录的HTML数据信息,nNetscape响应的是505HttpVersionNotSupported。2022-12-4网络入侵与防范讲义38Apache1.3.23o Http/1.1400BadRequestDate:Mon,08Sep200317:12:37GMTServer:Apache/1.3.23Connection:closeTransfer-Encoding:chunkedContent-Type:text/html;charset=iso-8859-12022-12-4网络入侵与防范讲义39IIS5.0o Http/1.1200OKServer:Mi
30、crosoft-IIS/5.0Content-Location:Date:Mon,08Sep200320:14:02GMTContent-Type:text/htmlAccept-Ranges:bytesLast-Modified:Mon,08Sep200320:14:02GMTETag:W/e0d362a4c335be1:ae1Content-Length:1332022-12-4网络入侵与防范讲义40NetscapeEnterprise4.1o Http/1.1505HttpVersionNotSupportedServer:Netscape-Enterprise/4.1Date:Mon,
31、08Sep200306:04:04GMTContent-length:140Content-type:text/htmlConnection:close2022-12-4网络入侵与防范讲义41Exp4:不正确规则协议请求:不正确规则协议请求o 对对GET/JUNK/1.0请求的响应,发送请求命令:请求的响应,发送请求命令:C:80GET/JUNK/1.0o 响应信息参见下面三页。响应信息参见下面三页。o 比较结果:比较结果:nApache忽视了不规则的协议JUNK,还返回了200OK和根目录的一些信息,nIIS响应的是400BadRequest,nNetscape几乎没有返回Http头信息,相
32、反的却返回了HTML格式的信息来表明这是个错误请求。2022-12-4网络入侵与防范讲义42Apache1.3.23o Http/1.1200OKDate:Sun,15Jun200317:17:47GMTServer:Apache/1.3.23Last-Modified:Thu,27Feb200303:48:19GMTETag:32417-c4-3e5d8a83Accept-Ranges:bytesContent-Length:196Connection:closeContent-Type:text/html2022-12-4网络入侵与防范讲义43IIS5.0o Http/1.1400BadR
33、equestServer:Microsoft-IIS/5.0Date:Fri,01Jan199920:14:34GMTContent-Type:text/htmlContent-Length:872022-12-4网络入侵与防范讲义44NetscapeEnterprise4.1o Bad request Bad request Your browser sent a query this server could not understand.2022-12-4网络入侵与防范讲义45测试小结测试小结o 下面列了一个表,可以很简单的辨别不同的下面列了一个表,可以很简单的辨别不同的Http服务器。
34、服务器。2022-12-4网络入侵与防范讲义469.2.6 Http指纹识别工具指纹识别工具o 介绍一个介绍一个Http指纹识别工具指纹识别工具Httprint,它通,它通过运用统计学原理,组合模糊的逻辑学技术,过运用统计学原理,组合模糊的逻辑学技术,能很有效的确定能很有效的确定Http服务器的类型。服务器的类型。o Httprint收集了每种收集了每种http服务器在交互过程服务器在交互过程中产生的特性,将它们编码成一个固定长度的中产生的特性,将它们编码成一个固定长度的ASCII字符串,这就是字符串,这就是Httpint签名。签名。2022-12-4网络入侵与防范讲义47Httprint的的
35、Http签名签名2022-12-4网络入侵与防范讲义48Httprint介绍介绍o Httprint先把一些先把一些Http签名信息保存在一签名信息保存在一个文档里,然后分析那些由个文档里,然后分析那些由Http服务器产服务器产生的结果。生的结果。o 当发现那些没有列在数据库中的签名信息时,当发现那些没有列在数据库中的签名信息时,可以利用可以利用Httprint产生的报告来扩展这个产生的报告来扩展这个签名数据库,而当签名数据库,而当Httprint下一次运行时,下一次运行时,这些新加的签名信息也就可以使用。这些新加的签名信息也就可以使用。2022-12-4网络入侵与防范讲义49Httprint
36、介绍介绍o Httprint可以图形界面运行和命令行下运可以图形界面运行和命令行下运行,可以运行在行,可以运行在Windows、Linux和和MacOSX平台上。平台上。o 下载地址:下载地址:2022-12-4网络入侵与防范讲义50httprint v0.301 主界面主界面2022-12-4网络入侵与防范讲义51输出结果报告输出结果报告2022-12-4网络入侵与防范讲义52识别模糊的识别模糊的Banner信息信息2022-12-4网络入侵与防范讲义539.3 Web页面盗窃及防御页面盗窃及防御o 9.3.1 Web页面盗窃简介页面盗窃简介o 9.3.2 逐页手工扫描逐页手工扫描o 9.3
37、.3 自动扫描自动扫描o 9.3.4 Web页面盗窃防御对策页面盗窃防御对策2022-12-4网络入侵与防范讲义549.3.1 Web页面盗窃简介页面盗窃简介o 服务器及服务器及HTTP指纹识别是为了判断服务器指纹识别是为了判断服务器的类型、版本信息。的类型、版本信息。o 而而Web页面盗窃的目的是通过对各个网页页面盗窃的目的是通过对各个网页页面源码的详细分析,找出可能存在于代码、页面源码的详细分析,找出可能存在于代码、注释或者设计中的关键缺陷和脆弱点,以此注释或者设计中的关键缺陷和脆弱点,以此来确定攻击的突破点。来确定攻击的突破点。o Web页面盗窃的两种方法:页面盗窃的两种方法:逐页手工扫
38、描逐页手工扫描和自动扫描和自动扫描。2022-12-4网络入侵与防范讲义559.3.2 逐页手工扫描逐页手工扫描o 传统的传统的Web盗窃方法是通过使用浏览器对一个盗窃方法是通过使用浏览器对一个Web站点上的每个网页逐页访问并查阅其源代码,以此来站点上的每个网页逐页访问并查阅其源代码,以此来试图寻找试图寻找Web服务器的安全漏洞。服务器的安全漏洞。o 一般而言,查看页面的一般而言,查看页面的Html代码可以发现不少信息,代码可以发现不少信息,如页面使用的代码种类、页面中内嵌的脚本代码、甚如页面使用的代码种类、页面中内嵌的脚本代码、甚至开发者或者公司的联系方式等等。至开发者或者公司的联系方式等等
39、。o 具有讽刺意义的是,往往规范化的编程风格会提供给具有讽刺意义的是,往往规范化的编程风格会提供给攻击者更多的信息。因为规范的代码往往会有很多帮攻击者更多的信息。因为规范的代码往往会有很多帮助性的注释,以帮助用户或者测试人员在代码运行错助性的注释,以帮助用户或者测试人员在代码运行错误时进行处理。而一向的观点往往认为这样的规范的误时进行处理。而一向的观点往往认为这样的规范的代码才是高质量的代码,如下面的例子所示。代码才是高质量的代码,如下面的例子所示。2022-12-4网络入侵与防范讲义56一个规范的一个规范的HTML代码代码Welcome to our home pageWelcome to
40、our wold.just a test.2022-12-4网络入侵与防范讲义57一个规范的一个规范的HTML代码代码o 在上面的例子中,从注释中不但可以看到在上面的例子中,从注释中不但可以看到Web服服务器的部分目录结构(务器的部分目录结构(/opt/html,/opt/test,/opt/cgi-bin),也可以看到文),也可以看到文件的地址(),以及初始口令(件的地址(),以及初始口令(“justatest”)。)。o 此外攻击者也可能联系开发者的电话或邮箱此外攻击者也可能联系开发者的电话或邮箱(tel:xxxxx,email:)来询问关于代码的资料,)来询问关于代码的资料,而开发者往往
41、会假定只有客户才会知道自己的联而开发者往往会假定只有客户才会知道自己的联系方式,这种攻击方式被称为系方式,这种攻击方式被称为“社会工程社会工程”。2022-12-4网络入侵与防范讲义58逐页扫描的不足逐页扫描的不足o 传统的逐页扫描最大的问题在于效率太低,传统的逐页扫描最大的问题在于效率太低,为了在目标站点的众多页面所包含的大量代为了在目标站点的众多页面所包含的大量代码中找出可能的漏洞,需要攻击者的大量时码中找出可能的漏洞,需要攻击者的大量时间和不懈努力以及必要的攻击知识。间和不懈努力以及必要的攻击知识。o 因此这种方式通常只被用于探测包含页面较因此这种方式通常只被用于探测包含页面较少的少的W
42、eb站点。站点。2022-12-4网络入侵与防范讲义599.3.3 自动扫描自动扫描o 对于较大型的对于较大型的Web站点,攻击者通常是站点,攻击者通常是采用脚本或扫描器来自动探测可能存在的采用脚本或扫描器来自动探测可能存在的安全漏洞。安全漏洞。o 这种方法的原理是逐页读取目标这种方法的原理是逐页读取目标Web站站点上的各个网页,通过搜索特定的关键字,点上的各个网页,通过搜索特定的关键字,来找出可能的漏洞。来找出可能的漏洞。o 为了实际运行的效率考虑,自动扫描往往为了实际运行的效率考虑,自动扫描往往会采取将目标会采取将目标Web站点镜像到本地、指站点镜像到本地、指定扫描条件、指定扫描细度等方法
43、。定扫描条件、指定扫描细度等方法。2022-12-4网络入侵与防范讲义60自动扫描自动扫描(2)o 由于自动扫描脚本或工具往往由那些资深攻由于自动扫描脚本或工具往往由那些资深攻击者开发后在网络上共享,攻击者不需要太击者开发后在网络上共享,攻击者不需要太多的攻击知识就可以使用。多的攻击知识就可以使用。o 这使得新出现的安全漏洞也可以为一些初级这使得新出现的安全漏洞也可以为一些初级的攻击者所利用。的攻击者所利用。o 此外,由于自动扫描具有很高的页面处理速此外,由于自动扫描具有很高的页面处理速度,因此它对度,因此它对Web站点的安全性构成了极站点的安全性构成了极大的威胁。大的威胁。2022-12-4
44、网络入侵与防范讲义619.3.4 Web页面盗窃防御页面盗窃防御o 由于由于Web盗窃是通过正常的盗窃是通过正常的Web访问来访问来试图寻找试图寻找Web站点漏洞,因此无法完全站点漏洞,因此无法完全屏蔽掉它。屏蔽掉它。2022-12-4网络入侵与防范讲义62Web盗窃防御方法盗窃防御方法o 常用的防御方法主要有常用的防御方法主要有4点:点:n 提高Web页面代码的质量。不要在代码中泄漏机密信息,尽量消除代码中可能存在的安全漏洞和设计错误,并在发布Web页面前进行安全性测试;n 监视访问日志中快速增长的GET请求。如果一个IP地址快速的多次请求Web页面,那么就应该怀疑是在进行自动扫描,并考虑封
45、闭此IP地址对Web页面的访问权限;2022-12-4网络入侵与防范讲义63Web盗窃防御方法盗窃防御方法(2)n 在Web站点上设置garbage.cgi脚本。由于自动扫描程序是依照Web目录结构来访问的,而garbage.cgi的作用就是被访问到时不停的产生垃圾页面。当然攻击者可以手工配置来避开这种脚本,但仍然可以有效的为攻击者设置障碍;n 经常注意网络上新出现的web扫描脚本的攻击内容。确保其针对的安全漏洞在自己的Web站点上没有出现,对已发现的安全漏洞尽快进行修补或暂停有漏洞的页面的访问。2022-12-4网络入侵与防范讲义64Web盗窃防御方法盗窃防御方法(3)o 此外,此外,Web
46、站点维护者也可以使用一些自站点维护者也可以使用一些自动扫描的脚本和工具来检验动扫描的脚本和工具来检验Web站点的安站点的安全性,如全性,如phfscan.c、cgiscan.c 等。等。网络入侵与防范讲义659.4 跨站脚本攻击跨站脚本攻击2022-12-4网络入侵与防范讲义65o 9.4.1 跨站脚本攻击概述跨站脚本攻击概述o 9.4.2 跨站脚本攻击过程跨站脚本攻击过程o 9.4.3 跨站脚本攻击实例跨站脚本攻击实例o 9.4.4 防御跨站脚本攻击防御跨站脚本攻击网络入侵与防范讲义669.4.1 跨站脚本攻击概述跨站脚本攻击概述2022-12-4网络入侵与防范讲义66o 什么是什么是XSS
47、攻击攻击o 跨站脚本攻击的危害跨站脚本攻击的危害o 跨站脚本攻击发起条件跨站脚本攻击发起条件网络入侵与防范讲义67什么是什么是XSS攻击攻击o XSS是跨站脚本攻击是跨站脚本攻击(Cross Site Script)。它。它指的是恶意攻击者往指的是恶意攻击者往Web页面里插入恶意页面里插入恶意html代代码,当用户浏览该网页时,嵌入其中码,当用户浏览该网页时,嵌入其中Web里面的里面的html代码会被执行,从而达到恶意用户的特殊目代码会被执行,从而达到恶意用户的特殊目的。的。o 本来跨站脚本攻击本来跨站脚本攻击(Cross Site Scripting)应该应该缩写为缩写为CSS,但这会与层叠
48、样式表但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此将跨站的缩写混淆。因此将跨站脚本攻击缩写为脚本攻击缩写为XSS。2022-12-4网络入侵与防范讲义67网络入侵与防范讲义68跨站脚本攻击的危害跨站脚本攻击的危害o XSS攻击可以搜集用户信息,攻击者通常会在攻击可以搜集用户信息,攻击者通常会在有漏洞的程序中插入有漏洞的程序中插入 JavaScript、VBScript、ActiveX或或Flash以欺骗用户。以欺骗用户。o 一旦得手,他们可以盗取用户帐户,修改用户一旦得手,他们可以盗取用户帐户,修改用户设置,盗取设置,盗取/污染污染cookie,做
49、虚假广告,查看,做虚假广告,查看主机信息等。主机信息等。o 例如,恶意代码将被欺骗用户的例如,恶意代码将被欺骗用户的cookie收集收集起来进行起来进行cookie欺骗,或者是在访问者的电欺骗,或者是在访问者的电脑执行程序,比如后门木马或者是在系统上添脑执行程序,比如后门木马或者是在系统上添加管理员帐户。加管理员帐户。2022-12-4网络入侵与防范讲义68网络入侵与防范讲义69跨站脚本攻击的危害跨站脚本攻击的危害(2)o 由于由于XSS漏洞很容易在大型网站中发现,在黑客漏洞很容易在大型网站中发现,在黑客圈内它非常流行。圈内它非常流行。FBI.gov、CNN.com、T、Ebay、Yahoo、
50、Apple、Microsoft、Kaspersky、Zdnet、Wired、Newsbytes都有这样那样的都有这样那样的XSS漏洞。漏洞。o 例如例如Kaspersky:alert(55)2022-12-4网络入侵与防范讲义69网络入侵与防范讲义70跨站脚本攻击发起条件跨站脚本攻击发起条件o 跨站脚本漏洞主要是由于跨站脚本漏洞主要是由于Web服务器没有对用户服务器没有对用户的输入进行有效性验证或验证强度不够,而又轻易的输入进行有效性验证或验证强度不够,而又轻易地将它们返回给客户端造成的地将它们返回给客户端造成的nWeb服务器允许用户在表格或编辑框中输入不相关的字符 nWeb服务器存储并允许把