网络攻防原理与技术 第3版 教案 -第10讲 Web应用攻击技术_第1页
网络攻防原理与技术 第3版 教案 -第10讲 Web应用攻击技术_第2页
网络攻防原理与技术 第3版 教案 -第10讲 Web应用攻击技术_第3页
网络攻防原理与技术 第3版 教案 -第10讲 Web应用攻击技术_第4页
网络攻防原理与技术 第3版 教案 -第10讲 Web应用攻击技术_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内容备注《网络攻防原理与技术》课程教案讲课题目:第10讲Web应用攻击技术目的要求:了解Web应用体系的脆弱性;掌握典型Web应用安全漏洞攻击方法;了解Web应用攻击的防范措施;了解Web应用防火墙的工作原理。重点难点:SQL注入的工作原理、XSS的工作原理。方法步骤:理论讲授。器材保障:电脑、投影仪。主要教学内容:一、Web应用体系结构脆弱性分析(一)Web应用体系结构Web以客户服务器方式工作。在用户计算机上运行的Web客户程序称为浏览器,如360安全浏览器、Firefox浏览器等。Web文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器或Web服务器,如微软IIS服务器和ApacheHTTP服务器。客户程序通过HTTP或HTTPS协议向服务器程序发出请求,服务器程序向客户程序返回客户所要的万维网文档。在一个客户程序主窗口上显示出的万维网文档称为页面(page)。页面一般用超文本标记语言HTML(HyperTextMarkLanguage)语言描述。Web应用程序,一般使用Perl、C++、JSP、ASP、PHP、Java等一种或多种语言开发,把处理结果以页面的形式返回给客户端。Web应用的数据一般保存在数据库中。(二)Web客户端的脆弱性Web客户端,即浏览器,是Web应用体系中的重要一环,它负责将网站返回的页面展现给浏览器,并将用户输入的数据传输给服务器。浏览器的安全直接影响到客户端主机的安全。利用浏览器漏洞渗透目标主机已经成为主流的攻击方式。各种浏览器都被被曝出过安全漏洞,是攻击者的首选目标。(三)Web服务器的脆弱性Web应用程序在Web服务器上运行。Web服务器的安全直接影响到服务器主机和Web应用程序的安全。流行的IIS服务器、Apache服务器、Tomcat服务器均被曝出过很多严重的安全漏洞。攻击者通过这些漏洞,不仅可以对目标主机发起拒绝服务攻击,严重的还能获得目标系统的管理员权限、数据库访问权限,从而窃取大量有用信息。(四)Web应用程序的脆弱性Web应用程序是用户编写的网络应用程序,同样可能存在着安全漏洞。网站攻击事件中有很大一部分是由于Web应用程序的安全漏洞而引起的。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员越来越多。但是很多程序员在编写代码的时候,并没有考虑安全因素,因此开发出来的应用程序存在安全隐患。此外,Web应用编程语言的种类多、灵活性高,一般程序员不易深入理解及正确利用,导致使用这些语言编写程序时不够规范,留下了安全漏洞。HTTP协议的脆弱性HTTP协议是一种简单、无状态的应用层协议(RFC1945、RFC2616)。虽然无状态性使得HTTP协议简单高效,但是HTTP协议的无状态性也会被攻击者利用。攻击者不需要计划多个阶段的攻击来模拟一个会话保持机制,这使得攻击变得简单易行:一个简单的HTTP请求就能够攻击Web服务器或应用程序。由于HTTP协议是基于ASCII码的协议,不需要弄清复杂的二进制编码机制,攻击者可以了解HTTP协议中传输的所有明文信息。此外,绝大多数HTTP协议运行在众所周知的80端口上,这一点也可被攻击者利用,因为很多防火墙或其他安全设备被配置成允许80端口的内容通过,攻击者可以利用这一点渗透到内网中。互联网中存在大量中间盒子,如CDN、防火墙、透明缓存(TransparentCache)等,这些中间盒子、Web服务器等对RFC的HTTP协议标准的理解如果不一致,就有可能导致一些新的攻击发生。为了克服HTTP协议的上述缺陷,现在大多数Web应用程序使用安全的HTTP协议,即HTTPS协议。因为中间盒子的存在,近年来HTTPS协议也被曝存在可被攻击者利用的安全问题。(六)Cookie的脆弱性Cookie是指网站为了辨别用户身份、进行会话跟踪而储存在用户本地的一些数据,最早由网景公司的LouMontulli在1993年3月提出,后被采纳为RFC标准。Cookie一般由服务器端生成,发送给客户端(一般是浏览器),浏览器会将Cookie的值保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用Cookie)。服务器可以利用Cookie存储信息并维护这些信息,从而判断HTTP传输中的状态。Cookie中的内容大多数经过了编码处理,因此在我们看来只是一些毫无意义的字母数字组合,一般只有服务器的CGI处理程序才知道它们的含义。由于Cookie中包含了一些敏感信息,如用户名、计算机名、使用的浏览器和曾经访问的网站等,攻击者可以利用它来进行窃密和欺骗攻击。(七)数据库的脆弱性大量的Web应用程序在后台使用数据库来保存数据。数据库的应用使得Web从静态的HTML页面发展到动态的、广泛用于信息检索和电子商务的媒介,网站根据用户的请求动态生成页面然后发送给客户端,而这些动态数据主要就保存在数据库中。由于网站后台数据库中保存了大量的应用数据,因此它常常成为攻击者的目标。最常见的网站数据库攻击手段就是SQL注入攻击。二、SQL注入攻击及防范(一)SQL注入攻击原理SQL注入(SQLInjection)攻击以网站数据库为目标,利用Web应用程序对特殊字符串过滤不完全的缺陷,通过把精心构造的SQL命令插入Web表单,或者将SQL命令加入到域名请求或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令,最终达到非法访问网站数据库内容、篡改数据库中的数据、绕过认证(不需要掌握用户名和口令就可登录应用程序)、运行程序、浏览或编辑文件等目的。由于SQL注入攻击易学易用,网上SQL注入攻击事件层出不穷,严重危害网站的安全。大多数情况下,SQL注入攻击发生在Web应用程序使用用户提供的输入内容来拼接动态SQL语句以访问数据库时。此外,当应用程序使用数据库的存储过程时,如果使用拼接SQL语句,也有可能发生SQL注入攻击。SQL注入攻击有多种类型。按提交方式来分类,SQL注入可分为GET注入、POST注入、Cookie注入、HTTP头注入等。按字符类型来分类,可分为整型注入和字符型注入。按服务器是否返回提示信息来分类,SQL注入攻击可以分为SQL回显注入和SQL盲注。1.SQL回显注入(SQLFeedbackInjection)SQL回显注入,也称为“普通SQL注入”,是指在执行SQL注入攻击时,Web服务器会返回来自数据库服务器(DBMS)的SQL语句执行结果,如数据库字段内容,或提示具体的SQL语法错误信息等。攻击者可以根据服务器返回的这些信息,有针对性地实施后续注入攻击。2.SQL盲注(SQLBlindInjection)实际的Web应用大多对回显进行了限制,服务器不会直接返回具体的数据库操作错误信息,也不会显示SQL语句的执行结果,而是会返回程序开发者设置的特定信息,甚至有时无法判定提交的SQL语句是否执行了,这种情况下的SQL注入攻击就称为盲注。与普通SQL注入相比,SQL盲注要困难很多,必须根据很有限的信息和反复尝试来完成注入攻击。常见SQL盲注方法有基于布尔的盲注、基于时间的盲注、基于报错的盲注。(1)基于布尔的盲注基于布尔的盲注是指构造SQL语句中的条件子句,使得查询结果为真(True)或假(False),并根据真假来推断数据库内容(库名、表名、列名、字段值等)。实施过程中,通常需要不断调整判断条件中的数值以逼近真实值,特别是要关注真假转换点(上一次返回的是True,下一次返回的是False,或反之)。(2)基于时间的盲注基于时间的盲注是指在SQL语句中注入延时函数(如MySQL的sleep()函数),根据SQL语句的执行时间来获取信息。(3)基于报错的盲注基于报错的盲注是指构造恶意SQL语句,导致DBMS在执行SQL语句时产生错误,并回显给客户端,根据回显的错误信息来推断数据库名、版本、用户名等信息。基于报错的注入又可分为数据库BUG报错注入和数据库函数报错注入。与SQL回显注入相比,基于报错的盲注中的错误信息一般不包括具体的SQL语句或数据库字段内容。一般来说,SQL注入攻击的一般步骤如下:1)将插入恶意代码的请求包发送给Web应用程序,然后对应用程序返回的数据进行分析,判断目标应用是否存在SQL注入漏洞,即寻找注入点。2)使用常见的SQL注入方法对Web应用进行SQL注入攻击,判断后台数据库类型及版本信息。3)依据已知的数据库类型及版本特征获取数据库基本信息,包括数据库名、数据库下的表信息、当前数据库使用者等。4)结合已经获取到的数据库信息,查找该数据库下某个表的表名、表结构等信息。5)在已经获取到的数据库表下查找该表中某个或某些字段信息。6)攻击者对获取到的信息进行分析后,执行注入攻击。实践中,除了手工探测、实施SQL注入攻击外,还可以利用一些SQL注入攻击工具来提高攻击效率。Sqlmap是一款开源SQL自动化注入工具,可以用来检测和利用SQL注入漏洞,在攻防实践中得到了广泛应用。SQL注入攻击的防护完成SQL注入需要满足三个关键条件:第一,能够构造出恶意SQL语句;第二,Web服务器对于客户端发来的请求以及数据库服务器反馈的内容没有进行识别和过滤;第三,数据库服务器对于Web服务器发来的SQL语句没有进行识别和过滤。三个条件中,第一个条件由攻击者掌控,剩余两个关键条件则是Web应用开发者在开发Web应用时要尽可能对相关内容进行识别和过滤,使得攻击者无法利用。由于SQL注入攻击的Web应用程序运行在应用层,因而对于绝大多数防火墙来说,这种攻击是“合法”的问题的解决只能依赖于完善编程,因此在编写Web应用程序时,应遵循以下原则减少SQL注入漏洞。(1)输入检查。在SQL注入攻击前的漏洞探测时,攻击者需要在提交的参数中包含“'”、“and”等特殊字符;在实施SQL注入时,需要提交“;”、“--”、“select”、“union”、“update”、“add”等字符构造相应的SQL注入语句。因此,防范SQL注入攻击的最有效的方法是对用户输入进行检查,确保用户输入数据的安全性。在检查用户输入或提交的变量时,根据参数的类型,可对单引号、双引号、分号、逗号、冒号、连接号等进行转换或过滤,这样就可以防止很多SQL注入攻击。(2)在构造动态SQL语句时,一定要使用类安全(type-safe)的参数编码机制。大多数的数据库API,包括ADO和ADO.NET允许用户指定所提供参数的确切类型(如,字符串、整数、日期等),这样可以保证这些参数被正确地编码以避免被黑客利用。一定要从始到终地使用这些特性。(3)禁止将敏感数据以明文存放在数据库中,这样即使数据库被SQL注入漏洞攻击,也会减少泄密的风险。(4)遵循最小特权原则。只给访问数据库的Web应用所需的最低权限,撤销不必要的公共许可,使用强大的加密技术来保护敏感数据并维护审查跟踪,并确保数据库打了最新补丁。(5)尽量不要使用动态拼装的SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。(6)应用的异常信息应该给出尽可能少的提示,因为黑客们可以利用这些消息来实现SQL注入攻击。跨站脚本攻击(一)攻击原理跨站脚本攻击(CrossSiteScripting,XSS)是指攻击者利用Web程序对用户输入过滤不足的缺陷,把恶意代码(包括HTML代码和客户端脚本)注入到其他用户浏览器显示的页面上执行,从而窃取用户敏感信息、伪造用户身份进行恶意行为的一种攻击方式,目前仍然是黑客实施网站攻击的主要手段。任何网站,只要有允许用户提交数据的地方,则就有可能成为跨站脚本攻击的目标。进行XSS攻击需要两个前提:第一,Web程序必须接受用户的输入,这显然是必要条件,输入不仅包括URL中的参数和表单字段,还包括HTTP头部和Cookie值;第二,Web程序会重新显示用户输入的内容,只有用户浏览器将Web程序提供的数据解释为HTML标记时,攻击才会发生。XSS主要有三种形式:反射式跨站脚本攻击(reflectedcross-sitescripting)、储存式跨站脚本攻击(persistedcross-sitescripting)和DOM式跨站脚本攻击。1.反射式跨站脚本攻击反射式跨站脚本攻击,也称为非持久性跨站脚本攻击,是最常见的一种跨站脚本攻击类型。与本地脚本漏洞不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据包含在页面中未经HTML实体编码,客户端代码便能够注入到动态页面中。在这种攻击模式下,Web程序不会存储恶意脚本,它会将未经验证的数据通过请求发送给客户端,攻击者就可以构造恶意的URL链接或表单并诱骗用户访问,最终达到利用受害者身份执行恶意代码的目的。2.储存式跨站脚本攻击储存式跨站脚本攻击,也称为持久性跨站脚本攻击,是一种十分危险的跨站脚本。如果Web程序允许存储用户数据,并且存储的输入数据没有经过正确的过滤,就有可能发生这类攻击。在这种攻击模式下,攻击者并不需要利用一个恶意链接,只要用户访问了储存式跨站脚本网页,那么恶意数据就将显示为网站的一部分并以受害者身份执行。3.DOM式跨站脚本攻击DOM式XSS攻击并不是按照“数据是否保存在服务端”划分的,它是反射式XSS的一种特例,只是由于DOM式XSS的形成原因比较特殊,因此把它单独作为一个分类。DOM式XSS攻击是通过修改页面DOM节点数据信息而形成的。(二)跨站脚本攻击的防范防范跨站脚本攻击常用的方法是:在将HTML返回给Web浏览器之前,对用户输入的所有内容进行过滤控制或进行编码。例如,HTML编码使用一些没有特定HTML意义的字符来代替那些标记字符,例如把左尖括号“<”转换为“<”,把右括号“>”转换为“>”,这样可以保证安全的存储和显示括号。一些Web程序允许用户输入特定的HTML标记,例如黑体、斜线、下划线和图片等,这种情况下,需要使用正则表达式验证数据的合法性,验证应当在服务端进行,因为浏览器端的检查很容易绕过。Cookie欺骗及防范由于Cookie信息保存在用户端,因此用户可以对Cookie信息进行更改。攻击者也可以轻易地实现Cookie信息欺骗,通过伪造Cookie信息,绕过网站的验证过程,不需要输入密码,就可以登录网站,甚至进入网站管理后台。此外,攻击者还可以通过Cookie获取用户的敏感信息,如用户名、口令等。Cookie文件一般保存在浏览器临时文件夹中,可以手工查看和更改Cookie信息,也可以利用Cookie管理工具或浏览器插件,如Cookie-Editor,浏览、创建、修改、删除Cookie信息。除了Cookie欺骗外,攻击者还可以通过监听Cookie来实现会话劫持。如果Cookie中设置了安全属性“secure”,则Cookie内容在网络中是加密传输的;否则,Cookie用明文传输,攻击者监听到Cookie内容后可以轻松实现会话劫持。CSRF攻击及防范(一)基本原理跨站请求伪造(CrossSiteRequestForgery,CSRF)是指攻击者假冒受信任用户向第三方网站发送恶意请求,如交易转账、发邮件、发布网帖、更改邮箱密码或邮箱地址等。它与XSS的差别在于:XSS利用的是网站内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的网站。CSRF的攻击的主要步骤如下:1)首先,用户C登录了受信任的正常网站A;2)网站A验证用户C提交的登录信息,通过后网站A会在返回在给浏览器的信息中带上含有会话ID的Cookie。Cookie信息会在浏览器端保存一定时间(根据服务端设置而定);3)完成第2步后,如果用户C没有退出网站A,则访问网站A的会话Cookie依然有效。此时用户C又去访问恶意网站B(很多情况下,所谓的恶意网站很有可能是一个存在诸如XSS等安全漏洞的受信任且被很多人访问的站点,攻击者利用这些漏洞将攻击代码植入到网站的某个网页中,等待受害者来访问);4)用户C访问的恶意网站B的某个页面向网站A发起请求,而这个请求会带上浏览器端所保存的访问网站A的Cookie;5)网站A根据请求所带的Cookie,认为此请求为用户C所发送的;6)网站A根据用户C的权限来处理恶意站点B所发起的请求,而这个请求可能以用户C的身份进行交易转账、发邮件、发布网帖、更改邮箱密码或邮箱地址等操作,这样攻击者就达到了伪造用户C请求站点A的目的。一般来说,如果网站中执行关键处理功能的网页中仅使用Cookie进行会话管理或仅依靠HTTP认证、SSL客户端证书、手机的移动ID来识别用户,则该网站就可能存在可被攻击者利用的CSRF漏洞。(二)攻击防御CSRF攻击之所以能够成功,主要是因为Web应用存在以下两个特性:(1)form元素的action属性能够指定任意域名的URL,使得即使是恶意网站也能向攻击目标发送请求;(2)浏览器会将保存在Cookie中的会话ID自动发送给目标网站,使得即使请求是通过恶意网站发起的,Cookie中的会话ID值也照样会被发送给目标网站。了解了CSRF漏洞产生的机理以及CSRF攻击成功的原因后,主要可以采取三种措施来防御CSRF攻击,包括:嵌入机密信息(令牌)、再次认证(输入密码)、检查Referer。目录遍历及其防范(一)基本原理许多Web应用支持外界以参数的形式来指定服务器上的文件名,如果服务器在处理用户请求时没有对文件名进行充分校验,就可能带来安全问题,如:文件被非法获取,导致重要信息被泄露;文件被篡改,如篡改网页内容以发布不实消息,设置圈套将用户诱导至恶意网站,篡改脚本文件从而在服务器上执行任意脚本等;文件被删除,如删除脚本文件或配置文件导致服务器宕机等,这就是目录遍历漏洞或路径遍历漏洞。一般来说,如果网页中允许外界指定文件名,都有可能存在目录遍历漏洞。一旦Web应用中存在目录遍历漏洞,攻击者就能够访问服务器上的任何文件。除了上例中显示的读取文件内容外,有时还能够执行覆盖或删除文件等操作,造成数据被篡改。如果攻击者通过目录遍历来编辑PHP等脚本文件,就能将编辑后的脚本在Web服务器上运行,相当于在服务器上执行任意脚本,进一步就可实现下载恶意程序或对系统进行非法操作等目的。安全防范一般来说,如果Web应用满足以下3个条件,就有可能产生目录遍历漏洞:1)外界能够指定文件名;2)能够使用绝对路径或相对路径等形式来指定其他目录的文件名;3)没有对拼接后的文件名进行校验就允许访问文件。上述3个条件必须同时满足,才有可能产生目录遍历漏洞。因此,为了避免出现目录遍历漏洞,只需使上述3个条件的一个或多个不成立即可。具体对策如下:1)避免由外界指定文件名。2)文件名中不允许包含目录名。3)限定文件中仅包含字母或数字。只要在Web应用程序的文件读写模块中对输入的文件名进行严格检查,就可以阻止目录遍历攻击。操作系统命令注入及防范在操作系统中,Shell是用来启动程序的命令行界面,如Windows系统中的cmd.exe,Unix或Linux操作系统中的sh,csh,bash等。很多Web应用编程语言支持应用通过Shell执行操作系统(OS)命令。通过Shell执行OS命令,或开发中用到的某个方法在其内部使用Shell,就有可能出现恶意利用Shell提供的功能来执行任意OS命令的情况,这就是OS命令注入。成功的主要原因是Shell支持连续执行多条命令,如Unix操作系统Shell中使用分号(;)或管道(|)等字符支持连续执行多条命令,Windows操作系统cmd.exe使用&符号来连接多条命令。这些符号一般称为Shell的元字符,如果OS命令参数中混入了元字符,就会使攻击者添加的操作系统命令被执行,这就是OS注入漏洞产生的原因。除了system这种直接执行操作系统命令的函数外,一些看似不会执行系统命令的函数,也可能通过Shell执行操作系统命令,如Perl中的open函数。OS命令注入攻击的一般流程为:1)从外部下载攻击用软件;2)为下载来的软件授予执行权限;3)通过内部攻击操作系统漏洞以取得管理员权限;4)攻击者在Web服务器上执行攻击操作,如:浏览、篡改或删除Web服务器内的文件,对外发送邮件,以此服务器作为跳板攻击其他服务器等。防御OS命令注入的策略一般包括以下几种:1)选择不调用操作系统命令的实现方法,即不调用Shell功能,而用其他方法实现;2)避免使用内部可能会调用Shell的函数;3)不将外部输入的字符串作为命令行参数;4)使用安全的函数对传递给操作系统的参数进行转义,消除Shell元字符带来的威胁。HTTP消息头注入攻击及防范HTTP消息头注入是指在重定向或生成Cookie时,基于外部传入的参数生成HTTP响应头时所产生的安全问题。HTTP响应头信息一般以文本格式逐行定义消息头,即消息头之间以换行符隔开。攻击者可以利用这一特点,在指定重定向目标URL或Cookie值的参数中插入换行符且该换行符又被直接作为响应输出,从而在受害者的浏览器上任意添加响应消息头或伪造响应消息体,以达到以下目的:生成任意Cookie,重定向到任意URL,更改页面显示内容,执行任意JavaScript而造成与XSS同样的损害。防御HTTP消息头注入攻击的方法主要有:1)不将外部传入参数作为HTTP响应消息头输出,如不直接使用URL指定重定向目标,而是将其固定或通过编号等方式来指定,或使用Web应用开发工具中提供的会话变量来转交URL;2)由专门的API进行重定向或生成Cookie,并严格检验生成消息头的参数中的换行符。其它Web安全漏洞1.反序列化安全漏洞序列化(serialization)是指将内存中对象的状态信息转换为可以存储或传输的形式,并将转换后的数据写入到临时或持久性存储区。反序列化(unserialization)则是执行相反的过程,从序列化的表示形式中提取数据,并直接设置对象状态,重新创建该对象。当Web应用接收序列化数据,并将其反序列化后,未经任何过滤将数据传输到敏感操作函数,例如文件读写函数file_put_contents()以及修改cookie或者session函数等。如果序列化数据为对象时,则可能将对象成员变量设置为特殊值,当这些成员变量被使用时,就有可能触发漏洞。从防护的角度来看,对于任何可能包含重要数据的对象,如果可能,应该使该对象不可序列化。如果它必须为可序列化的,应尝试生成特定字段来保存不可序列化的重要数据。2.服务器端请求伪造(SSRF)服务器端请求伪造(Server-SideRequestForgery,SSRF)是一种由攻击者利用服务器端发起攻击请求的安全漏洞。当攻击者完全或部分控制Web应用程序发送的请求时,就有可能出现SSRF漏洞。一个常见的例子是攻击者控制Web应用程序发出的第三方服务URL。例如,A网站是所有人都可以访问的外网网站,B网站则是只能内部访问的网站,但A网站能访问B网站。作为普通用户,我们可以访问A网站,然后篡改获取资源的来源,请求从B网站获取资源,假定A网站没有检测我的请求合不合法,以自己A网站的身份去访问B网站,于是我们就有机会攻击B网站。SSRF攻击的防护措施主要包括:1)如果Web应用程序需要在请求中传递URL,则应尽量使用IP地址和域名的白名单。如果白名单方法不适合,必须依赖黑名单,则应对用户输入进行验证。2)始终验证响应是否有预期的格式和内容。为防止响应数据泄露给攻击者,必须确保收到的响应符合预期。任何情况下,都不应将服务器发送的响应完整地传递给客户端。3)如果应用程序仅使用HTTP或HTTPS发出请求,则应禁用其它URL模式请求,以阻止攻击者利用Web服务器发出危险请求。4)为了保护敏感信息并确保Web应用程序的安全,应尽可能启用身份验证,即使对于本地网络上的服务也是如此。Web应用防火墙Web应用防火墙(WebApplicatio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论