书签 分享 收藏 举报 版权申诉 / 40
上传文档赚钱

类型《网络工程技术实践》课件项目六任务四文件上传漏洞检测及防范.pptx

  • 上传人(卖家):momomo
  • 文档编号:7603713
  • 上传时间:2024-04-14
  • 格式:PPTX
  • 页数:40
  • 大小:877.74KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《网络工程技术实践》课件项目六任务四文件上传漏洞检测及防范.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    网络工程技术实践 网络工程技术实践课件项目六 任务四 文件上传漏洞检测及防范 网络工程 技术 实践 课件 项目 任务 文件 上传 漏洞 检测 防范
    资源描述:

    1、1 项目六 Web网站攻击与防范项目六 Web网站攻击与防范2 项目六 Web网站攻击与防范【项目概述】某安全运维公司接到一个任务,要求对客户公司的Web网站进行渗透测试,已知服务器IP地址为192.168.137.100/24。请找出该Web网站存在的安全漏洞并给出防范攻击的措施。【项目分析】Web是万维网(World Wide Web,WWW)的简称,它利用HTTP(HyperText Transfer Protocol,超文本传输协议)来建立用户与服务器之间的标准交互方式。常用的Web应用都是基于网页形式开展的。Web网站由多个网页组成,提供各种类型的网络服务。3 项目六 Web网站攻击

    2、与防范l早期的Web网站只有浏览功能。随着IT技术的发展,现在的Web网站逐渐发展到能支持用户进行自定义查询、支持用户登录并互动、在线交易等复杂业务。在这个过程中,需要添加额外的组件来实现上述功能,因此,目前的Web站点都会附带数据库及其他服务,从而实现对当前站点及用户信息的存储及复杂功能的支持。l基于HTTP协议的Web网站执行一次典型信息查询任务的工作流程如图6-1所示。4 项目六 Web网站攻击与防范图 6-1 Web网站执行一次信息查询的工作流程5 项目六 Web网站攻击与防范l图中所示的流程与真实的大型网站应用流程并不完全一致,只用于说明基本原理。因为大型网站要同时为数以千万的用户请

    3、求提供服务,仅通过一台服务器根本无法支持海量的用户访问请求,所以会利用负载均衡、CDN、云技术、分布式数据库等技术来应对大量用户的并发访问。然而,所涉及的所有环节均可能存在安全隐患,其中一项服务产生问题都可能影响用户的正常使用或者危害Web服务器的安全。因此,要把Web系统中的所有组件都纳入安全防护体系之中。l目前,大多数企业都会拥有自己的Web网站,网站成为了企业对外宣传和业务开展的重要渠道。黑客也常常盯住企业的网站,希望通过利用企业网站的漏洞控制企业网站,进而控制企业的服务器,从中获得企业内部信息的控制权。常见的Web安全漏洞包括:SQL注入漏洞、XSS漏洞、命令执行漏洞、CSRF漏洞、文

    4、件上传漏洞、文件包含漏洞等,还有一些业务层面的逻辑漏洞。渗透测试人员需要利用技术发现这些漏洞,并给出防御措施,才能保证Web网站的安全运行。6 项目六 Web网站攻击与防范项目主要内容:任务一 Web漏洞检测任务二 SQL注入漏洞检测与防范任务三 XSS漏洞检测及防范任务四 文件上传漏洞检测及防范7 项目六 Web网站攻击与防范任务四 文件上传漏洞检测及防范8 项目六 Web网站攻击与防范l任务描述 根据任务一中对目标网站漏洞的扫描结果,我们发现该网站的某些页面存在文件上传漏洞。请使用渗透测试技术进一步检测该页面文件上传漏洞的情况并给出防范措施。l任务分析l1文件上传攻击的原理。l上传功能是用

    5、户与服务器进行文件交互的重要手段,主要应用于系统的流程核心点,如证件信息上传、申请表格上传、自定义头像上传等。通过上传功能,用户可实现自有内容的个性化修改、重点业务的自动开展等。同时,在业务系统侧,也可以通过文件上传功能实现用户交互的自定义设计,为业务开展及用户体验提供良好的实现方式。9 项目六 Web网站攻击与防范l但是,上传过程中存在重大安全隐患。攻击者的目的是取得当前Web服务器的权限。如果通过Web层面开展攻击,那么必须将攻击者的木马插入Web系统中,并在服务器端执行。这个过程就是对Web服务器进行文件注入攻击。这时,上传点可作为上传木马有效途径,上传攻击将直接威胁当前系统的安全性。l

    6、文件上传攻击,是指攻击者利用Web应用对上传文件过滤不严的漏洞,将应用程序定义类型之外的文件上传到Web服务器,并且此类文件通常为木马,在上传成功后攻击者即可获得当前的Webshell。l上传功能目前主要通过HTML的表单功能来实现,即将要上传的文件拆分为文件名及文件内容,并由服务器进行接收,再根据中间件规则进行过滤,转存至本地存储,从而完成了一次上传功能。以下为一个标准的上传功能实现案例。l(1)客户端上传表单的功能实现。通过HTML文件的功能实现从浏览器接收用户上传的文件,代码如下:10 项目六 Web网站攻击与防范lll l file uploadlll 文件上传漏洞l l 上传文件:l

    7、 l l lll其界面如图6-41所示。11 项目六 Web网站攻击与防范图 6-41 标准的文件上传界面12 项目六 Web网站攻击与防范l此代码中的关键是表单,其内容含义如下:l“form action”定义了表单上传目标页面为upload_file.php,也就意味着上传的文件由后台的upload_file.php程序来作进一步的处理。l采用的提交方式由“method”定义,为“post”方式。l定义提交类型为“multipart/form-data”(如果不指定,则由浏览器自行判断)。l(2)服务器端处理上传文件的功能实现。服务器端接收到来自浏览器上传的表单后,会对上传表单中的内容进行

    8、处理,并将PHP中的文件缓存到真实路径。服务端代码(upload_file.php)如下所示:13 项目六 Web网站攻击与防范l?phplif(is_uploaded_file($_FILESupfiletmp_name)ll$upfile=$_FILESupfile;l$name=$upfilename;l$type=$upfiletype;l$size=$upfilesize;l$tmp_name=$upfiletmp_name;lecho 上传文件名:.$name.;lecho 上传文件类型:.$type.;lecho 上传文件大小:.($size/1024).KB;l$destina

    9、tion=./file/.$name;lmove_uploaded_file($tmp_name,$destination);lecho 文件上传成功!;l14 项目六 Web网站攻击与防范lelsellecho 文件上传失败!;lecho$_FILESupfileerror;ll?15 项目六 Web网站攻击与防范l上传代码的完整流程为:lupload_file.php页面接收到表单的上传信息后,分别先获取上传文件的文件名$name、文件类型$type和文件大小$size。l设定文件的存储路径$destination。l使用move_uploaded_file函数将文件存储到$destina

    10、tion指定的路径中。l如果上传成功则显示“文件上传成功!”,否则显示“文件上传失败!”。l上述代码是实现上传功能的基本代码,其中未添加任何防护措施。如果要在此互不干涉下进行木马上传,直接利用上传功能选择木马文件并执行即可。16 项目六 Web网站攻击与防范l2文件上传攻击的条件。l攻击者利用上传功能的目的是将Web木马上传至服务器并能成功执行。因此,攻击者成功实施文件上传攻击并获得服务器Webshell的前提条件如下。l(1)目标网站具有上传功能。上传攻击实现的前提是:目标网站具有上传功能,可以上传文件,并且文件上传到服务器后可被存储。l(2)上传的目标文件能够被Web服务器解析执行。由于上

    11、传文件需要依靠中间件解析并执行,因此上传文件后缀名应为可执行格式。在Apache+PHP环境下,要求上传的Web木马采用.php后缀名(或能有以PHP方式解析的后缀名),并且存放上传文件的目录要有执行脚本的权限。l(3)知道文件上传到服务器后的存放路径和文件名。许多Web应用都会修改上传文件的文件名称,这时就需要结合其他漏洞获取这些信息。如果不知道上传文件的存放路径和文件名称,即使上传成功也无法访问,那么攻击过程就没有任何意义。l(4)目标文件可被用户访问。如果文件上传后,却不能通过Web访问,或者真实路径无法获得,木马则无法被攻击者打开,那么就不能成功实施攻击。17 项目六 Web网站攻击与

    12、防范l3Web木马的原理。l木马(Trojan horse)是指可以控制另一台计算机的特定程序。根据使用场景,木马可分为网页木马、系统木马等类,这种分类取决于它的作用目标。攻击者会针对 Web系统所采用的语言(ASP/PHP/JSP等)来编写木马,这种木马一般被称为Web木马。Web木马上传到Web服务器后可被当成Web页面被攻击者访问。攻击者远程访问Web木马页面即可执行Web木马。lWeb木马的主要作用是开设可供攻击者持续使用的后门,以方便攻击者进行后续针对Web服务器的提权等攻击。部分功能较为全面的木马也会提供文件操作、数据库连接等方便攻击者获取当前服务器数据的功能。l攻击者还可以利用

    13、Web木马来修改 Web页面,如替换首页(早期黑客炫耀为主)添加JavaScript刷流量/暗链等,并且可利用Web木马攻击操作系统来获取更高的权限。因此Web 木马的危害非常大。18 项目六 Web网站攻击与防范l4Web木马的特点。l从某个角度来说,Web木马也是应用页面,只不过主要是针对目标服务器执行信息获取、添加额外功能等工作,这与正常的页面功能完全不同,但是会以当前Web的格式存放,这是由于Web木马须在服务器上由中间件来解析并执行。综合以上不可变的情况,Web木马有以下几个主要特点。l(1)木马可大可小。根据功能不同,Web木马自身的文件大小也各不相同。最小的木马可利用一行代码进行

    14、实现。大的木马在提供各类丰富的功能的基础之上,自身的大小也会超过10KB。因此无法根据文件的代码量判断木马。l(2)具有自隐藏特性。Web木马执行时必须按照中间件支持的Web格式进行解析并执行。在真实攻击中,攻击者通常会将木马命名为一个近似系统文件或正常文件的名字,并在其中填充大量与当前站点中相似的无效代码,以迷惑管理员。总之,Web木马会想尽办法在服务器中隐藏自己,以等待合适的时机被攻击者执行。19 项目六 Web网站攻击与防范l(3)具有明显特征值。虽然Web木马在极力隐藏自己,但是由于其具有特殊功能,如针对数据库的大量操作功能、文件创建修改功能等,这些特殊功能实现需要调用系统的关键函数用

    15、以执行本身的功能,这些关键函数在木马中起着无法替代的作用,因此这些关键函数可作为Web木马的明显特征。在Web木马中常见的关键函数如下:l命令执行类函数:eval、system、popen、exec、shell_exec等。l文件功能类函数:fopen、opendir、dirname、pathinfo等。l数据库操作类函数:mysql_query、mysqli_query等。l需要注意的是,多数木马会对当前的关键函数进行类型隐藏,如先拆分结构,在调用进再进行拼接。因此,需要跟踪整体功能流程后,再根据执行效果进行确认。l(4)必须为可执行的网页格式。Web木马需要在当前Web服务器中执行,因此必

    16、须为网页格式。在极端情况下可配合文件包含漏洞实现木马执行,但最终执行环境必须为网页。20 项目六 Web网站攻击与防范l5一句话木马。lWeb系统中的木马是直接获取Webshell的有效手段,但是木马的大量功能会导致木马文件增大。同时,实现木马功能的代码越多,木马的特点也越明显,就越容易被发现。l一句话木马是一种特征性很强的脚本后门的简称,主要用于实现基本的链接功能。一句话木马的最大功能就是在Web服务器上“打开窗口”,以便为后续远程链接并传送后续大马等行为提供条件。l一句话木马的实现方式是定义一个执行环境,并设计一个传参数点,供接收外部给出的参数。经典的PHP环境的一句话木马原型如下:ll其

    17、中:l:脚本语言结束标记。21 项目六 Web网站攻击与防范l任务实施l此次任务实施的拓扑示意图如图6-42所示。图6-42 文件上传漏洞检测及防范拓扑示意图22 项目六 Web网站攻击与防范l1对目标网站进行文件上传漏洞测试。l步骤1 打开网页,测试网页的正常功能,如图6-43所示。该页面要求用户上传一个图片。图片上传成功后,页面显示“上传成功”,并给出上传文件在服务器上的存储位置为“././hackable/uploads/1.png”。图 6-43 测试页面正常功能23 项目六 Web网站攻击与防范l步骤2 测试页面是否允许上传php类型文件。编写一个简单的PHP程序,代码为ll即显示p

    18、hp信息页面。将该程序保存为test.php并上传,如图6-44所示,系统并未发现该文件是一个php文件,而是允许文件上传。图 6-44 页面允许上传PHP文件24 项目六 Web网站攻击与防范l步骤3 测试页面是否能够执行上传的PHP程序。根据步骤2上传PHP文件后页面显示的文件存储位置访问test.php文件:lhttp:/当前URL/././hackable/uploads/test.phpl发现文件能够被执行,如图6-45所示。25 项目六 Web网站攻击与防范图 6-45 上传的PHP程序文件能够被执行26 项目六 Web网站攻击与防范l步骤4 根据前三步的测试,初步发现该页面存在文

    19、件上传漏洞。编写一句话木马程序shell.php并上传,如图6-46所示。一句话木马程序代码如下:l图 6-46 成功上传一句话木马27 项目六 Web网站攻击与防范l步骤5 使用网站后台管理工具“中国菜刀”连接一句话木马程序,实现控制后台服务器的效果。打开“中国菜刀”程序,在空白处点击鼠标右键,在弹出的子菜单中选择“添加”选项,打开“添加SHELL”对话框,如图6-47所示。图 6-47 配置后台管理工具28 项目六 Web网站攻击与防范l在“地址”框中输入上传的shell.php的地址,也即“http:/当前URL/././hackable/uploads/shell.php,后面的文件框

    20、中输入编写的shell.php程序中“$_POST”变量后面所接的内容(也即字符串“cmd”),脚本类型选择“PHP(Eval)”,点击“添加”按钮。l在“中国菜刀”主窗口中双击刚才添加的条目,自动打开文件管理窗口,如图6-48所示。该窗口显示的文件是Web网站所在服务器的文件系统。在此界面可以向服务器上传文件、下载服务器上的文件,远程对Web网站所在的服务器进行各种操作。29 项目六 Web网站攻击与防范图 6-48 对Web网站后台服务器进行控制30 项目六 Web网站攻击与防范l在“中国菜刀”主窗口中对刚才添加的条目点击鼠标右键,在弹出的快捷菜单中选择“虚拟终端”,会打开一个新的选项卡,

    21、可以通过命令行的形式对Web网站所在的服务器进行各种操作,如图6-49所示。31 项目六 Web网站攻击与防范图 6-49 使用命令行对Web网站后台服务器进行控制32 项目六 Web网站攻击与防范l2文件上传攻击防范措施。l在上传过程中,既要保证上传功能的正常开展,又要对攻击者的木马情况进行过滤,才能保证不出现文件上传漏洞。防范文件上传攻击的措施包括在客户端的防范措施和服务端的防范措施两个方面。l(1)客户端使用JavaScript脚本进行检测。在网站的前端程序中部署JavaScript脚本,在用户访问时,脚本随同网页一起到达客户端浏览器。当用户上传文件时,JS脚本对用户表单提交的数据进行检

    22、查,如果发现非法后缀,如.php、.jsp等,则直接终止上传,从而起到防护的效果。防护代码如下:33 项目六 Web网站攻击与防范ll 上传文件:lllllfunction lastname()l var file=document.getElementsByName(upfile)0.value;l if(file=null|file=)l alert(你还没有选择任何文件,不能上传!);l return false;l 34 项目六 Web网站攻击与防范lvar allow_ext=.jpg|.jpeg|.png|.gif|.bmp|;/提取上传文件的类型l var ext_name=fi

    23、le.substring(file.lastIndexOf(.);l ext_name=ext_name.toLowerCase();l if(allow_ext.indexOf(ext_name+|)=-1)/判断上传文件类型是否允许上传l var errMsg=该文件不允许上传,请上传+allow_ext+类型的文件,当前文件类型为:+ext_name;l alert(errMsg);l return false;l l l35 项目六 Web网站攻击与防范l(2)服务端检测MIME类型。既然木马是以动态脚本的方式提交并执行,则格式需为.php。因此,可以检测客户端上传的文件类型,从而判断

    24、此次上传文件是否合法。这种检测文件类型的方法是通过检查HTTP包的Content-Type字段中的值来实现的。服务器接收到HTTP包后,先判断Content-Type是否合法。如果合法,则进行后续代码流程;如果非法,则直接中断本次上传。许多地方将Content-Type称为MIME(Multipurpose Internet Mail Extensions)信息。因此,此种防护手段通常也叫做MIME检测机制。防护代码如下:l$file_type=$_FILE“upfile”“type”;lIf($file_type=“image/gif”|$file_type=“image/jpg”|$fil

    25、e_type=“image/png”|$file_type=“image/gif”)/判断上传的文件的Content-Type类型l if(move_uploaded_file($_FILE“upload”“tmp_name”,36 项目六 Web网站攻击与防范l$destination./.$_FILE“upload”name)l echo“文件上传成功!”;l else echo “文件上传失败!”;llelsel echo“文件类型不正确!”;37 项目六 Web网站攻击与防范l【项目拓展】lWeb网站的安全漏洞通常还包括CSRF漏洞、文件包含漏洞、命令执行漏洞等,读者可以自行查阅相关资

    26、料学习这些漏洞的检测及防护措施。l所谓“道高一尺、魔高一丈”。本项目所提到的针对SQL注入、XSS和文件上传漏洞的防范措施,攻击者也都有相应的绕过防范措施的方法。请从攻击者角度思考如何绕过这些防范措施,并从安全维护者的角度给出更进一步的防范手段。38 项目六 Web网站攻击与防范l【项目总结】l 本项目主要讲述了针对Web网站的漏洞扫描方法及三种常见漏洞的检测方法和防范措施。扫描Web网站的漏洞可以使用自动扫描工具AWVS。常见的三种Web漏洞包括SQL注入漏洞、XSS漏洞和文件上传漏洞。这三种漏洞的出现都是由于程序对用户输入的参数检查不严格所引起的,因此,加强对用户输入数据的类型、格式、内容的检查,才能防止Web漏洞对网站造成的影响。本章知识点总结如下图所示。39 项目六 Web网站攻击与防范40 项目六 Web网站攻击与防范THANKS

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《网络工程技术实践》课件项目六任务四文件上传漏洞检测及防范.pptx
    链接地址:https://www.163wenku.com/p-7603713.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库