Web安全与防护 (微课版) 课件 项目六 安全的文件上传_第1页
Web安全与防护 (微课版) 课件 项目六 安全的文件上传_第2页
Web安全与防护 (微课版) 课件 项目六 安全的文件上传_第3页
Web安全与防护 (微课版) 课件 项目六 安全的文件上传_第4页
Web安全与防护 (微课版) 课件 项目六 安全的文件上传_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

项目六

安全的文件上传Web安全与防护本任务要点学习目标什么是文件上传实现简单的文件上传文件上传的原理理解文件上传的基本概念和用途。掌握文件上传的基本实现步骤。了解防护文件上传的安全风险任务一

什么是文件上传目录CONTENTS01/什么是文件上传02/简单的文件上传03/文件上传的类型04/文件上传的数据存储05/文件上传的三阶段什么是文件上传01图片上传文档上传音频上传视频上传其他类型文件上传是指将本地的文件通过网络传输到服务器或其他设备的过程。通俗的说就是将你的电脑或手机上的文件,比如图片、文档、音乐等,通过网络发送给服务器或其他设备,这样就可以在其他地方访问或下载这些文件。举个例子,如果你想把你的照片分享给朋友,你可以用微信或QQ等软件上传照片,然后发送给对方,对方就可以看到你的照片了。文件上传有不同的类型,主要取决于你上传的文件是什么格式和大小。简单的文件上传02demonstration/study_upload01.php在实现文件上传的第一步是创建文件上传页,该页面允许用户上传不同类型的文件。创建上传页面:首先创建一个页面,允许用户上传文件。判断请求方法:使用if语句检查请求方法是否为POST。获取文件信息:文件名:获取上传的文件名,存入$fileName。临时路径:获取临时文件路径,存入$fileTmpName。文件大小和类型:分别存入$fileSize和$filetype设置上传目录:指定文件保存的目录为“uploads/”,赋值给$targetDir。构造完整路径:将目录和文件名结合,形成$targetFilePath。移动文件:使用move_uploaded_file将文件移至目标路径成功:输出“文件上传成功”。失败:输出“上传文件失败”。简单的文件上传02代码的第二部分是一个HTML表单,用于让用户选择要上传的文件,并提交到服务器。属性说明action指定表单提交的目标页面,这里是uploader.php,即本页面。method指定表单提交的方法,这里是POST。enctype指定表单数据的编码类型,这里是multipart/form-data,必须设置为这个值才能上传文件。inputtype=“file”用于让用户选择要上传的文件,name属性指定了文件数据的键名,这里是fileToUpload。inputtype=“submit”用于让用户提交表单,val

ue属性指定了按钮上显示的文字,这里是“上传文件”。由此就构成了一个简单的文件上传,然而这段代码的文件上传漏洞是没有对上传文件的类型和内容进行任何验证,这可能导致恶意用户上传可执行的代码文件,例如PHP、ASP或JSP等,然后通过访问这些文件来执行任意的命令或代码,从而对服务器造成破坏或泄露敏感信息。文件上传的类型03文件上传是前端不能直接操作本地文件,必须要用户来触发,一般有以下3种触发方式(1)通过文件选择按钮选择本地文件(2)通过拖拽的方式把文件拖进来(3)在编辑框里复制粘贴文件上传的数据存储04

文件上传数据的存储是指请求端和接收端如何交换和保存文件数据的过程。一般来说,请求端提供了一个表单,用户可以选择要上传的文件,然后提交请求。请求端会将文件数据和其他表单信息编码并上传至接收端,接收端将上传的内容进行解码,提取出HTML表单中的信息,将文件数据存入指定的位置。文件上传的三阶段051)前端准备阶段:前端准备阶段是指在请求端中,用户选择要上传的文件,然后进行格式化和预处理。在这个阶段中,前端需要获取用户选择的文件,通常可以通过input标签和type属性设置为File来实现。用户选择文件后,前端需要将文件转换为Blob或者File对象,File对象会包含文件的一些元信息,比如文件名、大小、类型等。在上传之前,前端可能还需要对文件进行压缩、加密、格式转换等操作,以便于上传。最后,前端需要将文件数据封装成multipart/form-data的类型,并发送HTTP请求到接收端。文件上传的三阶段052)请求发送阶段:请求发送阶段是指前端将文件数据封装成HTTP请求,然后发送给后端的过程。在这个阶段中,前端需要按照multipart/form-data规范将文件数据封装成请求体,并设置相应的请求头信息,如Content-Type、Content-Disposition等。其中,Content-Type用于指定请求体的类型为multipart/form-data,boundary用于分割请求体的不同部分;Content-Disposition用于指定每个部分的类型,名称和文件名等元信息。在发送请求时,前端可以使用XMLHttpRequest对象或FetchAPI来发送HTTP请求。文件上传的三阶段05

3)后端处理阶段:后端处理阶段是指接收端接收到请求后,对请求进行解析和处理的过程。在这个阶段中,接收端需要按照multipart/form-data规范解析请求体,并解析每个部分的元数据和数据。对于文件上传,后端需要将上传的文件保存到服务器上,通常可以使用Node.js的fs模块或第三方库如multer等来实现。在文件上传过程中,后端需要进行文件大小、类型、格式等的校验,以避免上传非法文件或造成服务器负担过重的情况。最后,后端需要返回相应的响应结果给前端,以告知上传是否成功。课堂实践一、任务名称:文件上传功能实现二、任务内容:使用PHP代码编写一个简单的文件上传功能,尝试对各种类型的文件进行上传,分析文件上传功能的原理三、工具需求:PHP开发环境四、任务要求:完成实践练习后,由老师检查完成情况。课堂思考一、什么是文件上传?二、文件上传中,为什么需要进行格式转换或预处理?三、思考一个简单的文件上传的PHP代码的工作原理。四、文件上传的三阶段分别是什么?每个阶段主要完成哪些任务?课后拓展:多种文件上传分析与验证请同学们通过互联网了解一下,还要那些不一样的文件上传方式,这些文件上传有什么区别?同时在文件上传过程中,除了验证文件类型和大小外,还有哪些其他安全措施可以防止文件上传对服务器造成安全威胁?THANK

YOUToBeContinued项目六

安全的文件上传Web安全与防护本任务要点学习目标文件上传漏洞的基本概念实现简单的文件上传漏洞文件上传漏洞的危害分析掌握文件上传漏洞的原理。熟悉常见的攻击方式。理解文件上传漏洞的原理及其危险性任务二

文件上传漏洞原理目录CONTENTS01/文件上传漏洞02/文件上传漏洞的危害文件上传漏洞01什么是文件上传漏洞?当我们了解文件上传后,我们就会发现由于上传文件的输入校验不严格或缺乏足够的安全措施,就会导致文件上传漏洞。文件上传漏洞是一种常见的Web应用程序漏洞,指的是攻击者通过绕过应用程序的上传文件的限制,成功上传恶意文件到服务器上,从而实现攻击的目的。常见的文件上传漏洞有两种情况,一种是上传的文件未进行足够的检查,导致攻击者可以上传任意文件;另一种是上传的文件虽然进行了类型检查,但由于攻击者可以伪造文件类型等信息,使得恶意文件能够通过上传限制。文件上传漏洞01文件上传漏洞01demonstration/study_upload02.php在这段代码中,首先检查上传的文件是否是被允许的类型,然后检查文件是否已经存在。如果文件类型和文件名都是合法的,那么就将文件上传到服务器上。但是这段代码存在一个安全漏洞。攻击者可以通过伪造上传文件的请求,在上传文件的请求中携带特殊的文件名或文件类型来绕过上述的检查。文件上传漏洞01攻击者可能使用的上传请求示例攻击者在上传请求中使用multipart/form-data格式,将上传的文件名设置为malicious.php,并将文件内容设置为恶意代码。攻击者还伪造了Content-Type字段,将其设置为application/x-php,从而欺骗服务器将其当作PHP文件处理。当服务器接收到这个请求时,会将恶意代码保存在服务器上,并可以通过URL参数执行该代码,如/uploads/malicious.php?cmd=ls,攻击者就可以在服务器上执行任意命令。文件上传漏洞的危害02在Web站点中,通常会允许用户通过上传文件的功能将文件上传到服务器,这种功能如果没有进行良好的输入校验或缺乏足够的安全措施,就可能会被攻击者利用来上传恶意文件,例如WebShell或恶意程序。攻击者可以利用该漏洞,上传包含恶意代码的文件来获取服务器的控制权,破坏服务器的安全,窃取敏感数据,或者进行其他恶意操作。攻击者WEB服务器上传页面可执行文件1.上传伪装的可执行文件2.保存到服务器3.执行估计操作成功文件上传漏洞的危害02文件上传漏洞常见的危害执行恶意代码远程代码执行服务器瘫痪篡改数据窃取敏感数据泄露机密信息用户隐私泄露数据滥用发起攻击内部网渗透钓鱼攻击分布式拒绝服务攻击(DDoS).........文件上传漏洞的危害021)执行恶意代码:攻击者可以通过文件上传漏洞上传恶意代码到服务器,例如WebShell(Web脚本),通过该脚本执行攻击者指定的操作。这些操作可以包括获取服务器的敏感信息、破坏服务器的配置文件、执行命令、窃取用户信息等。

例如,写一个包含文件上传功能的PHP脚本,以允许攻击者上传恶意脚本。demonstration/study_upload03.php当攻击者可以上传一个包含WebShell代码的PHP文件,并将其保存在“uploads”文件夹中后,我们可以访问保存在“uploads”文件夹中的WebShell脚本,以执行其中的恶意代码。例如,如果我们将WebShell文件命名为“shell.php”,并将其上传到“uploads”文件夹中,则可以通过以下URL访问WebShell:文件上传漏洞的危害022)窃取敏感数据:攻击者可以上传包含恶意脚本的文件,通过该脚本窃取服务器上存储的敏感数据,例如用户密码、个人信息、信用卡信息等。为了窃取服务器上存储的敏感数据,攻击者可以上传一个包含恶意脚本的文件。该脚本可以从Web服务器上读取存储在服务器上的敏感数据,并将数据发送给攻击者控制的服务器。以下是一个简单的PHP示例代码,说明如何从Web服务器上读取敏感数据并发送到攻击者的服务器上(示例代码路径为:/demonstration/study_upload04.php)。demonstration/study_upload04.php文件上传漏洞的危害02在这个例子中,攻击者上传一个包含上面代码的PHP文件到Web服务器上。这个脚本打开一个存储在服务器上的包含用户密码的文件,并将密码发送到攻击者控制的服务器上。攻击者可以使用一个简单的PHP脚本来接收这些密码并将其保存在数据库中(示例代码路径为:/demonstration/stolen_passwords.php)。demonstration/stolen_passwords.php在这个例子中,攻击者创建了一个MySQL数据库,用于存储从受感染的Web服务器上窃取的密码。攻击者上传一个包含上面代码的PHP文件到他控制的Web服务器上,并将其命名为“stolen_passwords.php”。这个脚本接收从受感染的Web服务器上传的密码,并将其保存在数据库中。攻击者可以随时从这个数据库中访问窃取的密码。文件上传漏洞的危害023)发起攻击:攻击者可以通过文件上传漏洞上传恶意文件,例如病毒、木马等,利用该文件发起其他类型的攻击,例如DDoS攻击等。通过文件上传漏洞上传恶意文件是一种常见的攻击方式,攻击者可以上传包含病毒、木马等的文件,利用这些文件发起其他类型的攻击,例如DDoS攻击等。以下是一个简单的PHP代码示例(示例代码路径为:/demonstration/study_upload05.php),说明如何上传一个恶意文件并执行它。demonstration/study_upload05.php更多的危害植入后门:攻击者可以通过文件上传漏洞上传包含后门的文件,以获取服务器的访问权限并维持持久控制。篡改网站:攻击者可以上传包含恶意代码的文件,以篡改网站的内容,例如注入恶意脚本、植入广告、破坏网站的布局和样式等。......课堂实践一、任务名称:文件上传漏洞实现二、任务内容:使用PHP代码编写一个简单的文件上传漏洞,并分析文件上传出现漏洞的原因。三、工具需求:PHP开发环境四、任务要求:完成实践练习后,由老师检查完成情况。课堂思考一、文件上传漏洞的原理是什么?二、文件上传漏洞的危害还有那些?三、如果遇到文件上传漏洞应该如何防御?课后拓展:安全文件上传实践请同学们设计一个文件上传功能,模拟上传漏洞的实际攻击场景,并在上传功能中实施基本的安全检查(如限制文件类型为图片格式)。然后尝试通过上传一个伪装成图片的PHP文件,观察是否能够绕过这些检查并在服务器上执行恶意代码。THANK

YOUToBeContinued项目六

安全的文件上传Web安全与防护本任务要点学习目标理解不同类型的文件上传漏洞及其工作原理掌握多种攻击方式及其防范措施理解不同类型的文件上传漏洞及其工作原理。学会识别和防御文件上传相关的安全风险。掌握多种攻击方式及其防范措施。任务三

文件上传漏洞分类目录CONTENTS01/文件类型绕过漏洞02/文件名绕过漏洞03/目录遍历漏洞04/二进制文件上传漏洞05/非常规后缀名漏洞文件类型绕过漏洞01什么是文件类型绕过漏洞?文件类型绕过漏洞:MIME(MultipurposeInternetMailExtensions)类型是一种互联网标准,用于表示文档、图片、音频、视频等多种类型的文件格式。Web应用程序通常会根据文件的MIME类型来验证上传的文件类型是否符合要求,并拒绝上传不被允许的文件类型。但是,攻击者可以利用一些技巧,绕过这种验证,上传恶意文件。攻击者通常会使用一些特殊的文件格式,如.php、.asp等,或者在上传文件时通过修改HTTP请求头或表单属性来修改文件的MIME类型,让Web应用程序误认为上传的文件类型是被允许的。例如,攻击者可以通过修改HTTP请求头中的Content-Type字段,将上传的文件类型从image/jpeg改为application/x-php,让Web应用程序认为上传的是一个允许的图片文件,但实际上是一个PHP文件,从而成功上传恶意文件。文件类型绕过漏洞01文件类型绕过漏洞:MIME(MultipurposeInternetMailExtensions)类型是一种互联网标准,用于表示文档、图片、音频、视频等多种类型的文件格式。Web应用程序通常会根据文件的MIME类型来验证上传的文件类型是否符合要求,并拒绝上传不被允许的文件类型。但是,攻击者可以利用一些技巧,绕过这种验证,上传恶意文件。代码分析:1.HTML表单部分:这个表单允许用户选择文件并提交到study_upload08.php,表单数据使用POST方法提交,并且enctype设置为multipart/form-data,适用于文件上传。文件类型绕过漏洞012.PHP文件处理部分:目标目录检查:检查上传目录是否存在。如果目录不存在,脚本将不会执行文件上传操作。文件类型验证:验证上传文件的MIME类型是否为image/jpeg、image/png或image/gif。文件上传:将临时文件移动到目标目录,并显示成功或错误消息。文件类型绕过漏洞01demonstration/study_upload08.php漏洞分析:MIME类型伪造:代码只检查文件的MIME类型($_FILES['fileToUpload']['type']),这种检查方式易被伪造。攻击者可以将恶意文件伪装成合法的MIME类型,绕过这一验证,从而上传恶意文件。$_FILES['fileToUpload']['type']验证不可靠:$_FILES['fileToUpload']['type']是浏览器提供的文件MIME类型信息。这一信息可以被客户端修改,因此不可靠。攻击者可以通过篡改文件上传请求中的MIME类型来绕过服务器端的文件类型检查。文件名和文件扩展名的检查缺失:代码只检查文件的MIME类型,没有检查文件的实际扩展名或文件内容。攻击者可以通过更改文件的扩展名和MIME类型来上传恶意文件,而这些文件可能会被系统执行或造成其他安全风险。文件名绕过漏洞02demonstration/study_upload09.php文件名绕过漏洞(FileNameBypassVulnerability):攻击者通过构造特定的文件名,从而绕过了某些安全检测措施,使得安全检测措施失效,导致攻击者能够执行恶意操作。这种漏洞一般出现在需要对用户上传的文件进行安全检测的场景中,如文件上传功能、附件上传功能等。攻击者可以通过构造特殊的文件名,使得安全检测措施无法正确识别文件类型、文件后缀等信息,从而绕过检测,达到执行恶意操作的目的。文件名绕过漏洞:漏洞描述:虽然代码中包含了一个黑名单检查,尝试阻止某些危险的文件扩展名(如.php,.html,.jsp等),但是这种方法并不完全安全。攻击者可以利用文件名中的特殊字符或目录遍历符号(如../),绕过这一检查,将恶意文件上传到服务器。漏洞示例:攻击者可以上传一个文件名为evil.php%00.jpg的文件。PHP会将%00(即空字符)解释为文件名的终止符,这样即使.php后缀被替换,文件的实际扩展名仍然是.php,并且可以被执行。目录遍历漏洞03demonstration/study_upload10.php目录遍历漏洞(DirectoryTraversalVulnerability):也称为路径遍历漏洞、目录穿越漏洞,是指攻击者利用Web应用程序中的一个漏洞,通过修改URL参数等方式来访问Web服务器上未经授权的目录和文件,进而获取敏感信息或进行恶意操作的安全漏洞。攻击者通常通过改变目录路径中的分隔符、..和.等字符来遍历目录,突破Web应用程序的访问控制,访问不应该访问的目录和文件,包括系统文件、敏感配置文件等。目录遍历漏洞:漏洞描述:代码通过从GET请求中获取文件名,直接构建文件路径并输出文件内容。由于没有对用户输入进行充分验证,攻击者可以通过在file参数中使用目录遍历符号(如../),访问不应公开的文件。例如,file=../../etc/passwd可能使得系统文件(如/etc/passwd)被读取,导致敏感信息泄露。

漏洞示例:

如果攻击者构造了一个URL例如/script.php?file=../../../../etc/passwd,则可以访问服务器上的敏感文件。二进制文件上传漏洞04demonstration/study_upload12.php二进制文件上传漏洞(BinaryFileUploadVulnerability):指攻击者通过Web应用程序的文件上传功能,上传恶意的二进制文件(如PHP文件、Shell脚本、恶意软件等),从而危害Web应用程序的安全漏洞。二进制文件上传漏洞:漏洞描述:代码仅通过文件扩展名进行检查,而没有验证文件内容的实际类型或格式。攻击者可以上传一个恶意的二进制文件,即使其扩展名看似安全。例如,上传一个.jpg文件但实际是一个包含恶意代码的.php文件,这种方法称为“伪造文件”。非常规后缀名漏洞05demonstration/study_upload12.php非常规后缀名漏洞(UncommonFileExtensionVulnerability):指攻击者通过修改文件后缀名或者使用不常见的文件后缀名,绕过Web应用程序的安全防护措施,进行攻击的一种漏洞。非常规后缀名路段:漏洞描述:这段代码存在非常规后缀名漏洞,因为它仅通过文件扩展名黑名单来防止上传特定类型的文件,未考虑其他潜在的恶意扩展名(如.php5),使得攻击者可以绕过检查上传恶意文件。因此,仅依赖文件扩展名的黑名单无法有效防止所有类型的文件上传攻击。课堂实践一、任务名称:尝试不同类型的文件上传漏洞实现二、任务内容:使用PHP代码编写不同类型的文件上传漏洞,并分析文件上传出现漏洞的原因。三、工具需求:PHP开发环境四、任务要求:完成实践练习后,由老师检查完成情况。课堂思考一、MIME类型验证的局限性是什么?为什么攻击者能利用这些局限性进行文件类型绕过?二、文件名绕过漏洞的常见攻击手段有哪些??三、在实际应用中,如何防止双后缀绕过和空格绕过等攻击手法?四、尝试描述一个文件上传功能中的常见攻击场景,并说明攻击者可能如何利用该漏洞来影响系统安全。课后拓展:文件上传漏洞实践与修复演示请同学们根据自己所学习的经验,针对博客的文件上传漏洞写出自己的修复或者利用方法,并提交自己的代码,在下节课对自己所完成的文件上传漏洞修复或者利用方法进行讲解。THANK

YOUToBeContinued项目六

安全的文件上传Web安全与防护本任务要点学习目标在博客系统中找到文件上传漏洞验证博客系统中的文件上传漏洞修改博客中的文件上传漏洞掌握文件上传漏洞的发现方法。验证和实现文件上传漏洞掌握文件上传漏洞的修复方法。任务四文件上传漏洞检测与验证、任务五

文件上传漏洞修复与防范目录CONTENTS01/攻击业务流程02/文件上传漏洞检测03/文件上传漏洞验证04/文件上传漏洞修复与防范攻击业务流程01从攻击者的角度来思考,关于文件上传漏洞的攻击流程可以分为四个步骤1)找到目标网站:攻击者需要找到一个目标网站,该网站提供了文件上传功能,并且存在漏洞可以被攻击者利用。攻击者通常会使用自动化工具,例如漏洞扫描器,来搜索潜在的目标网站。2)上传恶意文件:攻击者通过Web应用程序的文件上传功能,上传恶意文件到服务器上。通常情况下,攻击者会利用一些技术手段来绕过服务器的安全验证机制,例如上传木马、利用隐藏字段绕过文件类型限制等。3)执行恶意代码:上传成功后,攻击者可以通过上传的文件执行恶意代码。例如,上传的文件中可能包含一个WebShell(Web脚本),攻击者可以通过该脚本执行攻击者指定的操作。这些操作可以包括获取服务器的敏感信息、破坏服务器的配置文件、执行命令、窃取用户信息等。4)控制服务器:攻击者上传的文件可能包含后门或者其他恶意代码,攻击者可以通过该代码获取服务器的访问权限并维持持久控制。攻击业务流程01攻击业务流程01在讨论文件上传漏洞的各种风险时,我们不能忽视木马程序的威胁。木马程序是一种恶意软件,它通过伪装成正常文件或程序进入系统,隐藏在受害者的计算机中,悄无声息地进行恶意操作。接下来将给同学们介绍“一句话木马”什么是一句话木马?一句话木马,也称为一句话后门,是一种常见的网络攻击手段。它利用了PHP的强大特性,通过一个短小的PHP代码片段,就能实现远程控制目标服务器。一句话木马的原理很简单,它通过漏洞或者社会工程学手段,将一段具有执行权限的PHP代码插入到目标服务器中。当服务器解析该代码时,攻击者就能获取该服务器的控制权,从而执行任意操作。攻击业务流程01一句话木马的构成一句话木马通常由三部分组成:头部信息:一句话木马的头部信息用来欺骗服务器并变相解析木马代码。常见的头部信息有GIF89a、<?php等。主体代码:主体代码是一句话木马的核心部分,是攻击者用来控制服务器的代码。主体代码通常通过编码和拆分等技术来提高其隐蔽性,使其难以被检测。结尾部分:一句话木马的结尾部分主要用于关闭PHP标签,以避免其他代码的干扰。常见的结尾部分有?>。一句话木马示例代码这段代码实现了一个简单的一句话木马,通过$_GET['cmd']获取到用户传入的命令,然后使用shell_exec函数执行该命令,并将输出结果返回给用户。文件上传漏洞检测02在检测文件上传漏洞时,我们首先需要确认漏洞的存在。在进行漏洞利用之前,必须首先验证其是否确实存在。对于本次讨论的博客系统,我们需要首先定位其文件上传接口。我们可以看到在后台的文章编写处可以对图片进行上传文件上传漏洞检测02当我们点击这个上传按钮后,可以看到这里提示我们只能上传jpg|jpeg|png类型的文件通过查看代码(源代码路径:/admin/article_add.php),我们发现本地代码中可以看到没有本地的类型验证,由此可以知道是由服务器验证,同时还是白名单验证漏洞验证02通过之前的一些列判断,我们可以知道当前文件上传的后端,对上传

温馨提示

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

评论

0/150

提交评论