网络攻击类型概览.doc

上传人:仙人指路1688 文档编号:2402097 上传时间:2023-02-17 格式:DOC 页数:25 大小:328KB
返回 下载 相关 举报
网络攻击类型概览.doc_第1页
第1页 / 共25页
网络攻击类型概览.doc_第2页
第2页 / 共25页
网络攻击类型概览.doc_第3页
第3页 / 共25页
网络攻击类型概览.doc_第4页
第4页 / 共25页
网络攻击类型概览.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《网络攻击类型概览.doc》由会员分享,可在线阅读,更多相关《网络攻击类型概览.doc(25页珍藏版)》请在三一办公上搜索。

1、网络攻击类型概览1 引言随着计算机网络的飞速发展,网络信息的安全问题也日渐突出,它已经成为了计算机领域的一个重大课题。现阶段,网络攻击的手段花样不断更新,层出不穷,大致来说,可以分为如下六类:信息收集型攻击、访问类攻击、Web攻击、拒绝服务类攻击、病毒类攻击、溢出类攻击。古语有云“知己知彼,百战不殆”。对黑客来说,这个“知彼”指的是对入侵目标的了解,它不仅要掌握大量的计算机网络技术、编程技术,而且在某些时候还要懂得社会工程学,只有完美的利用这些东西,充分发挥自己的想象力,才能增加入侵的成功率;对攻击防护者来说,这个“知彼”指的是我们要充分了解黑客有哪些攻击方法,只有充分了解网络攻击类型有哪些,

2、才能针对这些攻击产生相应的防御和检测措施,从而保证网络的完全。攻击检测的有效性和全面性都非常重要,网络安全是整体的安全。若检测了但没有检测出来,那这个检测就是个鸡肋食之无味弃之可惜,但若检测的不全面,相当于又为攻击者提供了一个安全漏洞。本文作者不是网络攻防方面的技术专家,也是出于想学习这方面的知识,从百度百科、微博、百度文库、知网空间、公司内部的攻防书籍等等地方,收罗各种资料并进行学习和整理,而编写了这篇文档。如果继续深入研究一下,比如每种攻击的工具使用方法、每种攻击的防范技术等,都可以单独作为一篇学习文档。本文档将常见的网络攻击进行了分类,并分别介绍了这些攻击类型的原理,有些还介绍了具体的实

3、例,为大家了解网络攻击相关知识提供一个敲门砖,若能为读者起到抛砖引玉的效果,本篇文档也就实现了它的价值。本文主要内容包括:n 网络攻击类型分类n 各类网络攻击的相关介绍n 部分网络攻击的具体实例n 常见攻击工具1.1 目的本文档旨在为刚接触网络攻击相关产品的测试和技术人员,提供一个整体的网络攻击领域的宏观视角。通过阅读本文档,大家可以了解到目前流行哪些攻击方法,这些攻击方法的原理,以及使用什么工具可以实现这些攻击。1.2 名词解释n DDoSDistributed Denial of Service,分布式拒绝服务,简称DDoS。指将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS(

4、拒绝服务)攻击,从而成倍地提高拒绝服务攻击的威力。n ICMPICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机、路由器之间传递控制信息,包括网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然不传输用户数据,但是对于用户数据的传递起着重要的作用。n TracertTracert(路由跟踪)用于确定IP数据包访问目标所采取的路径。Tracert命令用IP生存时间(TTL,time to live)字段和ICMP错误消息来确定从一个主机到网络上其它主机

5、的路由。2 侦察/信息收集型攻击侦察是未经授权的发现和扫描系统、服务或漏洞,也被称为信息收集。信息收集型攻击是一种基础的网络攻击方式,并不对目标本身造成危害,在大多数情况下,它是其它攻击方式的先导,被用来为进一步入侵提供有用的信息。通过向目标主机发送数据包,然后根据响应来搜集系统信息,发现服务器的端口分配及所提供服务和软件版本,可以进一步检测远程或者本地主机安全脆弱性。此类攻击通常包含地址扫描、网络端口扫描、操作系统探测、漏洞扫描。2.1 地址扫描地址扫描指的是攻击者利用ping、tracert或firewalk等攻击或者直接利用ICMP消息发向目标网络,请求应答,如果请求和应答没有被网络边界

6、过滤掉,攻击者就可以借此来获得目的网络地址分配信息,进而分析目的网络的拓扑结构。防御方法是在防火墙上过滤掉ICMP应答消息。此类工具非常多,网上随便都可以下载到,我这里有一个非常好用的IPMAC.exe小工具,该工具可以在指定的IP地址范围内扫描活跃的IP地址以及对应的MAC地址。2.2 端口扫描端口扫描就是通过连接到目标系统的TCP或UDP端口,来确定哪些端口开放?什么服务正在运行?一般来说端口扫描有三个用途:识别目标系统上正在运行的TCP和UDP服务;识别目标系统的操作系统类型;识别某个应用程序或某个特定服务的版本号。端口扫描方法有全连接扫描、半连接扫描、秘密扫描、UDP ICMP端口不可

7、到达扫描。全连接扫描是最基本的TCP扫描,它调用操作系统提供的connect()函数,通过完整的TCP三次握手,与目标计算机的端口进行尝试性的连接。如果connect()返回成功说明该端口打开,否者没有打开。半连接扫描指的是不使用完整的TCP三次握手来进行连接尝试。此类扫描方式比全连接扫描隐蔽且速度快,但是需要自己构造IP包,因此需要root权限,并且需要防火墙可以过滤掉此类扫描包。秘密扫描方法有TCP FIN扫描和TCP ACK扫描两种。TCP FIN(False Positives)扫描的指的是反向确定结果,即攻击者向主机发送虚假消息,当对方没有任何响应时认为目标端口是开放的,而如果返回数

8、据包则认为目标端口是关闭的,这种方法在区分Unix和NT时,是十分有用的;TCP ACK扫描的原理是,当申请主机向目标主机一个端口发送一个只有ACK标志的TCP数据包,如果目标主机该端口是“开”状态,则返回一个TCP RST数据包,否则不回复,根据这一原理可以判断对方端口是处于开还是关状态。以上两种秘密扫描方式的优点是比较难记录,可以绕过某些防火墙,且不包含TCP三步握手建立连接中的任何一步,有很多的实现方法。但是需要用户具备root权限来构造IP包,另外,对Win NT系统,不管端口是否打开,都回复RST,TCP FIN扫描方法就失效了。UDP ICMP端口不可到达扫描的扫描方法与上面几种方

9、法的不同之处在于使用的是UDP协议,由于这个协议简单,扫描变得相对比较困难。这是由于打开的端口对扫描探测并不发送一个确认,关闭的端口也并不需要发送一个错误数据包。幸运的是,许多主机在你向一个未打开的UDP端口发送一个数据包时,会返回一个ICMP_PORT_UNREACH错误。这样你就能发现哪个端口是关闭的。UDP和ICMP错误都不保证能到达,因此这种扫描器必须还实现在一个包看上去是丢失的时候能重新传输。这种扫描方法是很慢的,因为RFC对ICMP错误消息的产生速率做了规定。同样,这种扫描方法需要具有root权限。下方是三种端口扫描技术的优缺点总结:表 2-1 端口扫描技术优缺点对比优缺点端口扫描

10、技术优点缺点全连接扫描 扫描迅速、准确而且不需要任何权限 易被目标主机发觉而被过滤掉 半连接扫描 一般不会被目标主机记录连接,有利于扫描的不被发现 在大部分操作系统下,扫描主机需要构造适用于这种扫描的IP包,而通常情况下,构造自己的SYN数据包必须要有root权限 秘密扫描 能躲避IDS、防火墙、包过滤器和日志审计,从而获取目标端口的开放或关闭的信息。没有包含TCP三次握手协议的任何部分,所以无法被记录下来,比半连接扫描要更为隐蔽 扫描结果的不可靠性增加,而且扫描主机也需要自己构造IP包 UDP ICMP端口不可到达扫描 可以扫描非TCP端口,避免了TCP的IDS 由于是基于简单的UDP协议,

11、扫描相对困难,速度很慢而且需要root权限 管他如何实现的端口扫描,只要能成功获得端口扫描结果才是王道,下面是一个scanport.exe小工具的端口扫描效果图。Nmap工具也可以实现主机端口扫描,如下图,在命令行下进入nmap软件目录,然后输入下方红框里的命令,执行即可。2.3 操作系统探测操作系统探测指的是攻击者使用具有已知响应类型的数据库的自动工具,对来自目标主机的、对坏数据包传送所作出的响应进行检查。由于每种操作系统都有其独特的响应方法(例如NT和Solaris的TCP/IP堆栈具体实现有所不同),通过将此独特的响应与数据库中的已知响应进行对比,黑客经常能够确定出目标主机所运行的操作系

12、统。 另外,攻击者可以通过DNS域转换、Finger服务、LDAP服务获取操作系统的主机名或用户信息。DNS协议不对转换或信息性的更新进行身份认证,这使得该协议被人以一些不同的方式加以利用,如果你维护着一台公共的DNS服务器,黑客只需实施一次域转换操作就能得到你所有主机的名称以及内部IP地址。 Finger服务指的是黑客使用finger命令来刺探一台finger服务器以获取关于该系统的用户信息。 LDAP服务指的是黑客使用LDAP协议窥探网络内部的系统和它们的用户的信息。 可以使用nmap工具查看主机的操作系统信息,包括主机状态、主机名等信息。可以使用NMAP工具探测主机的操作系统:2.4 漏

13、洞扫描网络漏洞扫描技术建立在上述三种扫描技术的基础之上,通过上述三种方法可以收集到很多目标主机的各种信息,例如是否能用匿名登录、是否有可写的FTP目录、是否能用telnet、httpd是否用root在运行等。在获得目标主机TCP/IP端口和其对应的网络访问服务相关信息后,与网络漏洞扫描系统提供的漏洞库进行匹配,如果满足匹配条件,则视为漏洞存在。基于上述三种扫描技术形成的漏洞扫描工具有Nmap、Nessus、X-scan。nmap基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。允许系统管理员察看一个大的网络系统有哪些主机以及其

14、上运行何种服务。它支持多种协议的扫描如UDP,TCP connect(),TCP SYN (half open), ftp proxy (bounce attack),Reverse-ident, ICMP (ping sweep), FIN, ACK sweep, Xmas Tree, SYN sweep, 和Null 扫描。你可以从SCAN TYPES 一节中察看相关细节。nmap 还提供一些实用功能如通过tcp/ip 来甄别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的PING 侦测下属的主机、欺骗扫描、端口过滤探测、直接的RPC 扫描、分布扫描、灵活的目标选择以及端口的描

15、述。nmap -oX - -system-dns 192.168.76.201 snnmap -oX - -system-dns 192.168.76.201 -P0 Onmap -oX - -system-dns 192.168.76.201 -sPNessus 是一个功能强大而又易于使用的远程安全扫描器,它不仅免费而且更新极快。安全扫描器的功能是对指定网络进行安全检查,找出该网络是否存在有导致对手攻击的安全漏洞。该系统被设计为client/sever 模式,服务器端负责进行安全检查,客户端用来配置管理服务器端。在服务端还采用了plug-in的体系,允许用户加入执行特定功能的插件,这插件可以

16、进行更快速和更复杂的安全检查。在Nessus 中还采用了一个共享的信息接口,称之知识库,其中保存了前面进行检查的结果。检查的结果可以HTML、纯文本、LaTeX(一种文本文件格式)等几种格式保存。X-scan是Xfocus小组自己写的一款扫描软件,有图形界面和命令行两种形式,运行在windows平台,实际上使用的是nmap 的核心内容,采用多线程方式对指定IP地址段进行安全漏洞检测,支持插件功能,提供了图形界面和命令行两种操作方式,扫描内容包括远程服务类型、操作系统类型及版本、各种弱口令漏洞、后门、应用服务漏洞、网络设备漏洞、拒绝服务漏洞等等。3 访问类攻击访问类攻击指的是攻击者在获得或者拥有

17、访问主机、网络的权限后,肆意滥用这些权限进行信息篡改、信息盗取等攻击行为。我通过在网络上搜集资料,暂介绍三种访问类攻击行为:口令攻击、端口重定向、中间人攻击,下面分别对其做个具体描述。3.1 口令攻击攻击者攻击目标时常常把破译用户的口令作为攻击的开始,只要攻击者能猜测或者确定用户的口令,他就能获得机器或者网络的访问权,并能访问到用户能访问到的任何资源。特别是若这个用户有域管理员或root用户权限,这是极其危险的。口令攻击的原理是先得到该主机上的某个合法用户的账号,然后再进行合法用户口令的破译。获得普通用户账号的方法很多,比如:1) 利用目标主机的Finger功能:当用Finger命令查询时,主

18、机系统会将保存的用户资料显示在终端或计算机上。2) 从电子邮件地址中收集:有些用户电子邮件地址会透漏其在目标主机上的账号,很多系统会使用一些习惯性的账号,造成账号的泄漏。获取用户口令有三种方法:1) 利用网络监听非法得到用户口令。当前,很多协议根本就没有采用任何加密或身份认证技术,如在Telnet、FTP、HTTP、SMTP等传输协议中,用户帐户和密码信息都是以明文格式传输的,攻击者利用数据包截取工具便可很容易收集到帐户和密码。2) 在知道用户账号后,利用一些专门软件强行破解用户口令。例如,攻击者采用字典穷举法来破解用户的密码,这个破译过程完全可以由计算机程序来自动完成,因而几个小时就可以把上

19、万条记录的字典里所有单词都尝试一遍。3) 利用系统管理员的失误。在UNIX操作系统中,用户的基本信息存放在password文件中,而所有的口令经过DES加密方法加密后专门存放在一个叫shadow 的文件中。攻击者获取口令文件后,就会使用专门的摩羯DES加密法的程序来解口令。3.2 端口重定向端口重定向指的是攻击者对指定端口进行监听,把发给这个端口的数据包转发到指定的第二目标。一旦攻陷了某个关键的目标系统,比如防火墙,攻击者就可以使用端口重定向技术把数据包转发到一个指定地点去,这种攻击的潜在威胁非常大,能让攻击者访问到防火墙后面的任何一个系统。fpipe是Foundstone公司开发的一个TCP

20、源端口转发/重定向工具,它可以创建一个TCP数据流,并允许指定一个源端口,此种攻击可以绕过一些阻断特定通信进入内部网络的防火墙的限制。fpipe工具的基本功能就是端口重定向,在启动fpipe时需要指定一个服务器端的监听端口、一个远程目的地端口(即实际想要连接的、躲在防火墙后面的那个端口)和一个(可选的)本地源端口。当fpipe启动时,它将等待客户来连接到它的监听端口。在建立起监听连接之后,目标机器(被攻击者)上的目的地端口与本地机器(攻击者)上的指定源端口之间就会建立起一个新的连接,这样就创建出了一个完备的通信通道。建立起这条完整通道之后,fpipe就能把它从外来连接上接收到的所有数据转发到防

21、火墙后面的远程目的地端口、把应答信息返回给发起这次连接的系统。3.3 中间人攻击(会话劫持)中间人攻击是一种“间接”的入侵攻击,这种攻击模式,是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,而这台计算机就称为“中间人”,然后入侵者把这台计算机模拟成一台或两台原始计算机,使“中间人”能够与原始计算机建立活动连接,并允许其读取或修改传递的信息,两个原始计算机用户却认为他们是在互相通信。通常,这种“拦截数据-修改数据-发送数据”的过程就被称为“会话劫持”。通过中间人攻击,攻击者可以实现信息篡改、信息盗取等目的。下面一个具体实例来形象地描述通过中间人攻击来进行信息

22、篡改的过程。假设a希望与b通信。同时, c希望拦截窃会话以进行窃听并可能在某些时候传送给b一个虚假的消息。首先,a会向b索取他的公钥。如果b将他的公钥发送给a,并且此时c能够拦截到这个公钥,一个中间人攻击就可以开展。c发送给a一个伪造的消息,声称自己是b,并且附上了c自己的公钥(而不是b的)。a收到公钥后相信这个公钥是b的,于是a将她的消息用c的公钥(a以为是b的)加密,并将加密后的消息回给b。c再次截获a回给b的消息,并使用c自己的私钥对消息进行解密,如果c愿意,她也可以对消息进行修改,然后c使用b原先发给a的公钥对消息再次加密。当b收到新加密后的消息时,他会相信这是从a那里发来的消息。1.

23、 a发送给b一条消息,被c截获:a “嗨,b,我是a。给我你的公钥” - c、b2.c将这条截获的消息转送给b;此时b不能分辨这条消息是否真的是从a那里发来的:a、c “嗨,b,我是a。给我你的公钥” - b3. b回应a的消息,并附上了他的公钥:a c - b的公钥- b4. c用自己的密钥替换了消息中b的密钥,并将消息转发给a,声称这是b的公钥:a c b6. 然而,由于这个消息实际上是用c的密钥加密的,所以c可以解密它,阅读它,并在愿意的时候修改它,然后使用b的密钥重新加密,并将重新加密后的消息转发给b:a c “在家等我!”-使用b的公钥加密 - b7. b认为,这条消息是经由安全的传

24、输通道从a那里传来的。这个例子显示了a和b需要某种方法来确定他们是真正拿到了属于对方的公钥,而不是拿到来自攻击者的公钥。否则,这类攻击一般都是可行的,在原理上,可以针对任何使用公钥密钥技术的通讯消息发起攻击。幸运的是,有各种不同的技术可以帮助抵御MITM攻击。4 Web攻击Web这种应用的可操作性很大,用户使用的自由度也很高,同时,此应用也非常脆弱,遭遇的攻击也非常普遍。当攻击者在Web站点或应用程序后端 “描绘” 某个目标时,通常出于以下两个目的之一:阻碍合法用户对站点的访问,或者降低站点的可靠性。而根据国内某IT网站对网友和Web安全专家调查,以下是当前较“流行”和威胁排名靠前的攻击方式:

25、SQL注入式攻击、跨站脚本攻击、CC攻击、Script/ActiveX攻击以及DDos攻击。DDoS攻击会在后面有一章专门讲述,本章节具体介绍一下SQL注入攻击、跨站脚本攻击、CC攻击、Script/ActiveX攻击。4.1 SQL注入攻击4.1.1 SQL注入原理SQL注入和缓冲区溢出都是一种依赖于开发人员没测试输入数据的疏漏的攻击。SQL注入攻击的基本原理是在用户输入中注入一些额外的特殊符号或SQL语句,使系统构造出来的SQL语句在执行时或者改变了查询条件,或者附带执行了攻击者注入的整个SQL语句,从而让攻击者达到了非法的目的。由于SQL注入攻击利用的是SQL语法,使得这种攻击具有广泛性

26、。理论上说,对于所有基于SQL语言标准的数据库软件都是有效的,包括MSSQL Server、Oracle、DB2、Sybase、MySQL等。只要这个恶意代码负荷SQL语句的规则,则在代码编译与执行的时候,就不会被系统所发现。它的产生主要是由于程序对用户输入的数据没有进行细致的过滤,导致非法数据导入查询。这种类型的脆弱点是对 Web 应用程序最有效的攻击类型之一,并且随着对 Web 应用程序的信任的增加,这种利用的力量甚至将更令人畏缩。幸运的消息是,像溢出类型的攻击一样,可以通过清洁输入数据,并且从不立即相信用户输入(至少对于输入的数据)来防止大部分这种脆弱点。4.1.2 SQL注入具体实例对

27、一些存在SQL注入漏洞的应用系统来说,利用这些漏洞,攻击者可以窃取用户数据,提升权限等,根据注入方式的不同,注入方法主要有以下几种: 1、没有正确或不严格过滤转义字符 在用户的输入没有对转义字符过滤时,就会发生这种形式的注入式攻击,它会被传递给一个SQL语句。这样就会导致应用程序的终端用户对数据库上的语句实施操纵。比方说,下面的这行代码就会演示这种漏洞: SELECT * FROM users WHERE username = $USER AND password=$PASS;$USER 和 $PASS 会用用户提供的用户名和密码来代替。那么如果用户输入bob和1234,那么结果的查询是:SE

28、LECT * FROM users WHERE username = bob AND password = 1234;而来自数据库的返回值会是所有用 bob 作为用户名且用 1234 作为密码的数据元组。但是如果黑客输入 admin 和hi OR 1=1-,那么查询是:SELECT * FROM users WHERE username = admin and password = hi OR 1=1-注意用户输入的引号如何与原始查询中的第三个引号匹配。数据库现在会返回用户名为 admin 的所有元组,并且会取消对密码的检查,因为 password = hi OR 1=1 命令数据库寻找密码是

29、 hi 的元组或 1=1 的元组,而由于 1 总是 1,所以每行都是候选。- 是 SQL 注释标志,取消查询中原始的其他引号,并且还将取消任何额外的检查,因此如果有额外的凭证也会被忽略。在一些SQL服务器上,如在SQL Server中,任何一个SQL命令都可以通过这种方法被注入,包括执行多个语句。下面语句中的username的值将会导致删除“users”表,又可以从“data”表中选择所有的数据(实际上就是透露了每一个用户的信息)。 a; DROP TABLE userTable; SELECT * FROM data WHERE name LIKE % 这就将最终的SQL语句变成下面这个样子

30、: SELECT * FROM userTable WHERE name = a; DROP TABLE userTable; SELECT * FROM DATA WHERE name LIKE %; 其它的SQL执行不会将执行同样查询中的多个命令作为一项安全措施。这会防止攻击者注入完全独立的查询,不过却不会阻止攻击者修改查询。2、类型不正确的处理 如果一个用户提供的字段并非一个强类型,或者没有实施类型强制,就会发生这种形式的攻击。当在一个SQL语句中使用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型)就会发生这种攻击。例如: SELECT * FROM data WHER

31、E id = + a_variable + ; 从这个语句可以看出,作者希望a_variable是一个与“id”字段有关的数字。不过,如果终端用户选择一个字符串,就绕过了对转义字符的需要。例如,将a_variable设置为:1; DROP TABLE userTable,它会将“userTable”表从数据库中删除,SQL语句变成:SELECT * FROM DATA WHERE id = 1; DROP TABLE users; 3、数据库服务器中的漏洞 有时,数据库服务器软件中也存在着漏洞,如SQL Server服务器漏洞。例如:分别由NameTxt,PwdTxt接受页面输入用户名和密码,

32、然后构造如下sql语句: select * from User where userName = + NameTxt + and userPassword = + PwdTxt + ; 比如你的用户名为your,我不知道密码,但是我在用户名处输入 your -,SQL语句变成:select * from User where userName=your - and userPassword =. 注意-,会把后边的sql作为注释。 4、盲目SQL注入式攻击 当一个Web应用程序易于遭受攻击而其结果对攻击者却不见时,就会发生所谓的盲目SQL注入式攻击。有漏洞的网页可能并不会显示数据,而是根据注入

33、到合法语句中的逻辑语句的结果显示不同的内容。这种攻击相当耗时,因为必须为每一个获得的字节而精心构造一个新的语句。但是一旦漏洞的位置和目标信息的位置被确立以后,一种称为Absinthe的工具就可以使这种攻击自动化。 5、条件响应 注意,有一种SQL注入迫使数据库在一个普通的应用程序屏幕上计算一个逻辑语句的值:SELECT booktitle FROM booklist WHERE bookId = OOk14cd AND 1=1这会导致一个标准的面面,而语句SELECT booktitle FROM booklist WHERE bookId = OOk14cd AND 1=2在页面易于受到SQ

34、L注入式攻击时,它有可能给出一个不同的结果。如此这般的一次注入将会证明盲目的SQL注入是可能的,它会使攻击者根据另外一个表中的某字段内容设计可以评判真伪的语句。 6、条件性差错如果WHERE语句为真,这种类型的盲目SQL注入会迫使数据库评判一个引起错误的语句,从而导致一个SQL错误。例如: SELECT 1/0 FROM users WHERE username=Your。显然,如果用户Your存在的话,被零除将导致错误。 7、时间测定 时间测定注入则是在注入语句中加入像“ wait for 100”这样的语句,根据该查询结果出现的时间来判定是否能注入、注入是否成功以及推导数据值的范围。这些方

35、法都是通过问一些相关但并非直接且能得到回应的问题,从响应信息推出想要的信息,进而进行攻击。 以上仅是对SQL攻击方法的粗略分类,但从技术上讲,如今的SQL注入攻击者们在如何找出有漏洞的网站方面更加聪明,也更加全面了,攻击者们可以使用各种工具来加速漏洞的发现和利用过程。4.2 跨站脚本攻击4.2.1 跨站脚本攻击原理跨站脚本攻击(Cross Site Scripting,安全专家们通常将其缩写为XSS),是指攻击者利用网站程序对用户输入过滤不足、输入可以显示在页面上对其它用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。静态站点不会受到

36、此类攻击影响,但是动态站点往往会,这是因为动态站点的网站中包含大量的动态内容以提高用户体验,所谓的动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容。用户在浏览网站、使用即时通讯软件,甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。攻击者通常会用十六进制(或其他编码方式)将链接编码,以免用户怀疑它的合法性。网站在接收到包含恶意代码的请求之后会产生一个包含恶意代码的页面,而这个页面看起来就像是那个网站应当生成的合法页面一样。许多流行的留言本和论坛程序允许用户发表包含HTML和javascript的贴子,假设用户甲发表了一篇包含恶意脚

37、本的贴子,那么用户乙在浏览这篇贴子时,恶意脚本就会执行,盗取用户乙的session信息。随着AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML)技术的普遍应用,XSS的攻击危害将被放大。使用AJAX的最大优点,就是可以不用更新整个页面来维护数据,Web应用可以更迅速地响应用户请求。AJAX会处理来自Web服务器及源自第三方的丰富信息,这对XSS攻击提供了良好的机会。AJAX应用架构会泄漏更多应用的细节,如函数和变量名称、函数参数及返回类型、数据类型及有效范围等。AJAX应用架构还有着较传统架构更多的应用输入,这就增加了可被攻击的点。4.2

38、.2 跨站脚本攻击具体实例根据XSS跨站脚本攻击存在的形式及产生的效果,可以将其分为以下三类并分别介绍实例:一、 非持久型XSS跨站脚本攻击非持久型XSS又叫反射型XSS脚本,它是指那些浏览器每次都要在参数中提交恶意数据才能触发的跨站脚本漏洞。该类XSS跨站脚本攻击方式,只是简单地将用户输入的数据直接或未经过完善的安全过滤就在浏览器中进行输出,导致输出的数据中存在可被浏览器执行的代码数据。由于此种类型的跨站代码存在于URL中,所以黑客通常需要通过诱骗或加密变形等方式,将存在恶意代码的链接发给用户,只有用户点击以后才能使得攻击成功实施。下面这个页面的主要作用是获取用户输入的参数作为用户名,并在页

39、面中显示“欢迎您,XXX”的形式,具体代码如下:?php$username = $_GETname;echo 欢迎您, .$username.!;?正常情况下,用户会在URL中提交参数name的值为自己的姓名,然后该数据内容会通过以上代码在页面中展示,如用户提交姓名为“张三”,完整的URL地址如下:http:/localhost/test.php?name=张三在浏览器中访问时,会显示如下图1所示内容:图4-1 页面显示用户信息此时,因为用户输入的数据信息为正常数据信息,经过脚本处理以后页面反馈的源码内容为欢迎您, 张三!。但是如果用户提交的数据中包含有可能被浏览器执行的代码的话,会是一种什么

40、情况呢?我们继续提交name的值为alert(/我的名字是张三/),即完整的URL地址为http:/localhost/test.php?name=alert(/我的名字是张三/)在浏览器中访问时,我们发现会有弹窗提示,如下图2所示:图4-2 弹窗显示用户信息那么此时页面的源码又是什么情况呢?源码变成了“欢迎您, alert(/我的名字是张三/)!”,从源代码中我们发现,用户输入的数据中,与标签中的代码被浏览器执行了,而这并不是网页脚本程序想要的结果。这个例子正是最简单的一种XSS跨站脚本攻击的形式,称之为反射型XSS。二、持久型XSS脚本攻击持久型XSS又叫存储XSS,与非持久型XSS相反,

41、它是指通过提交恶意数据到存储器(比如数据库、文本文件等),而Web应用程序输出的时候是从存储器中读出恶意数据输出到,持久型XSS脚本攻击是指Web应用程序会将用户输入的数据信息保存在服务端的数据库或其他文件形式中,网页进行数据查询展示时,会从数据库中获取数据内容,并将数据内容在网页中进行输出展示,因此持久型XSS具有较强的稳定性。持久型XSS多出现在Web邮箱、BBS、社区等从数据库读取数据的正常页面,由于不需要浏览器提交攻击参数,所以其危害往往大于非持久型XSS攻击。4.3 CC攻击4.3.1 CC攻击原理 CC攻击(ChallengeCollapsar)指的是攻击者利用大量代理服务器对目标

42、计算机发起大量连接,导致目标服务器资源枯竭造成拒绝服务,CC攻击也属于拒绝服务类攻击的一种,不过主要是用来攻击页面的。每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,而CC就是模拟多个用户(多少线程就是多少用户),不停地进行访问哪些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,如果CPU长时间处于100%,永远都有处理不完的连接,那么最后就造成网络拥塞,正常的访问被中止。4.3.2 CC攻击具体实例我们假设服务器A对Search.asp的处理时间需要0.01s,也就是说,它1s可以而保证100个用户的Search请求,如果服务器允许的最大连接时

43、间是60s,那么我们使用CC模拟120个用户并发连接,在经过1分钟后,服务器就被请求了7200次,处理的有6000次,于是剩下了1200个用户并发连接没有被处理。有的朋友会说:丢连接!丢连接!问题是服务器是按“先来后到”的顺序丢的,这1200个是在最后10秒的时候发起的,想丢?还早!经过计算,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列,然后服务器开始120个/秒的丢连接,发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这样服务器达到了超级繁忙状态。我们这里假设的服务

44、器处理Search只用了0.01S,也就是10毫秒,使用的线程也只有120,实际的环境下,很多服务器的丢连接时间远比60S长,使用线程远比120多,可以想象可怕了吧。而且客户机只要发送了断开,连接的保持又是代理在做,此时一旦服务器收到SQL请求,肯定会进入队列。不论连接是否已经断开,只要服务器是并发的,不是顺序执行,就会使得更多的请求进入内存请求,对服务器造成更大的负担。4.4 Script/ActiveX攻击Script是一种可执行的脚本,它一般由一些脚本语言写成,比如常见的JAVA SCRIPT,VB SCRIPT等。这些脚本在执行的时候,需要一个专门的解释器来翻译,翻译成计算机指令后,在

45、本地计算机上运行。这种脚本的好处是,可以通过少量的程序写成,而完成大量的功能。 这种SCRIPT的一个重要应用就是嵌入在WEB页面里面,执行一些静态WEB页面标记语言(HTML)无法完成的功能,比如本地计算、数据库查询和修改,以及系统信息的提取等。这些脚本在带来方便和强大功能的同时,也为攻击者提供了方便的攻击途径。如果攻击者写一些对系统有破坏的SCRIPT,然后嵌入在WEB页面中,一旦这些页面被下载到本地,计算机便以当前用户的权限执行这些脚本,这样,当前用户所具有的任何权限,SCRIPT都可以使用,可以想象这些恶意的SCRIPT的破坏程度有多强,这就是所谓的SCRIPT攻击。 ActiveX是

46、一种控件对象,它是建立在MICROSOFT的组件对象模型(COM)之上的,而COM则几乎是Windows操作系统的基础结构。ActiveX控件可以嵌入在WEB页面里面,当浏览器下载这些页面到本地后,相应地也下载了嵌入在其中的ActiveX控件,这样控件便可以在本地浏览器进程空间中运行(ActiveX空间没有自己的进程空间,只能由其它进程加载并调用),因此,当前用户的权限有多大,ActiveX的破坏性便有多大。如果一个恶意的攻击者编写一个含有恶意代码的ActiveX控件,然后嵌入在WEB页面中,被一个浏览用户下载后执行,其破坏作用是非常大的,这便是所谓的ActiveX攻击。5 拒绝服务类攻击拒绝

47、服务攻击即攻击者想办法让目标机器停止提供服务或资源访问。这些资源包括磁 盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为这是由于网络协议本身的安全缺陷造成的,从而拒绝服务攻击也成为了攻击者的终极手法。拒绝服务类攻击有两种形式:带宽消耗性以及资源消耗型,它们都是通过大量合法或伪造的请求占用大量网络以及器材资源,以达到瘫痪网络以及系统的目的,接下来介绍一下这两种类型下的常见攻击方式。5.1 带宽消耗型攻击5.1.1 UDP洪水攻击(UDP Flood)UDP洪水攻击(UDP Flood)是日渐猖獗的流量型DoS攻击,这种攻击是抓住了UDP协议是一种面向无连接的传输层协议,以至于数据传送过程中,不需要建立连接和进行认证这一特点。进行攻击时,供给方向被攻击方发送大量的异常高流量的完成UDP数据包,这样一方面通过占用带宽使得被攻击主机所在的网络资源被耗尽,还会使被攻击主机忙于处理UDP数据

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号