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网站攻击与防范任务三 XSS漏洞检测及防范8 项目六 Web网站攻击与防范l任务描述l根据任务一中对目标网站漏洞的扫描结果,我们发现该网站的某些页面存在被XSS攻击的风险。请使用渗透测试技术进一步检测该页面XSS漏洞的情况并给出防范措施。l任务分析l1XSS攻击的原理。l跨站脚本攻击
5、(XSS攻击),其英文全称为Cross Site Scripting,原本缩写应当是CSS,但为了和层叠样式表(Cascading Style Sheet,CSS)有所区分,安全专家们通常将其缩写成XSS。lXSS攻击是指攻击者利用网站程序对用户输入过滤不足的缺陷,输入可以显示在页面上对其他用户造成影响的JavaScript、HTML代码,从而盗取用户资料、利用用户身份进行某种动作或对访问者进行病毒侵害的一种攻击方式。9 项目六 Web网站攻击与防范l当前主流的网站一般具有用户输入参数的功能,如网站留言板、评论区等。攻击者利用其用户身份在输入参数时附带了恶意脚本,在提交服务器之后,服务器并没有
6、对用户端传入的参数做任何安全过滤。之后服务器会根据业务流程,将恶意脚本存储在数据库中或直接回显给用户。在用户浏览含有恶意脚本的页面时,恶意脚本会在用户浏览器上成功执行。恶意脚本有很多种表现形式,如常见的弹窗、窃取用户Cookie、弹出广告等,这也是跨站脚本攻击的直接效果。l如图6-35所示的页面,正常的业务流程为当用户在文本框中输入自己的名字后,页面会显示“Hello XXX(用户名字)”的信息。10 项目六 Web网站攻击与防范图6-35 网页正常的业务流程11 项目六 Web网站攻击与防范l而如果别有用心的用户在文本框中输入了一条JavaScript的语句:lalert(“haha”)l网
7、页将不再显示正常的结果,而是弹出了一个窗口,显示“haha”,也正是我们输入的那条JavaScript语句的执行结果,如图6-36所示。图6-36 网页被XSS攻击12 项目六 Web网站攻击与防范l这是因为网页未对用户输入内容作安全性检查,导致用户输入的非正常内容被网页当作正常内容去执行。l这种弹出窗口的效果仅是进行XSS测试的一种方法。在真实的场景中,XSS攻击所带来的后果会更加严重,轻者会弹出广告,重者会导致用户账户失窃,数据信息被读取、篡改,非法转账,强制发送电子邮件,受控向其他网站发起攻击等。13 项目六 Web网站攻击与防范l2XSS攻击的分类。lXSS攻击通常在用户访问目标网站时
8、或者之后进行某项动作时触发并执行。根据攻击代码的存在地点及是否被服务器存储,并且根据XSS攻击存在的形式及产生的效果,可以将其分为三种类型。l(1)反射型XSS。页面将用户输入的数据通过URL的形式直接或未经完善的安全过滤就在浏览器中进行输出。由于此类型的跨站代码存在于URL中,因此,黑客通常需要通过诈骗或加密变形等方式,将存在恶意代码的链接发给用户,只有用户点击以后才能使攻击成功实施。前面那个别有用心的用户输入的JavaScript语句即是发起的反射型XSS攻击。l(2)存储型XSS。Web应用程序将用户输入的数据信息保存在服务端的数据库或其他文件形式中,网页进行数据查询展示时,会从数据库中
9、获取数据内容,并将数据内容在网页中进行输出展示。只要用户访问具有XSS攻击脚本的网页时,就会触发攻击效果,因此存储型XSS具有较强的稳定性。常见的场景就是博客或新闻发布系统中的评论区,黑客将包含恶意代码的数据信息直接写入文章或文章评论中,所有浏览文章或评论的用户就会被黑客在他们的客户端浏览器中执行插入的恶意代码。14 项目六 Web网站攻击与防范l(3)基于DOM的XSS。严格意义上来讲,基于DOM的XSS攻击并非按照“数据是否保存在服务器端”来划分,其从效果上来说也算是反射型XSS。但是这种XSS实现方法比较特殊,是由JavaScript的DOM节点编程可以改变HTML代码这个特性而形成的攻
10、击。不同于反射型XSS和存储型XSS,基于DOM的XSS攻击往往需要针对具体的JavaScript DOM代码进行分析,并根据实际情况进行XSS攻击的利用。l3XSS漏洞测试流程。lXSS漏洞的发现是一个困难的过程,尤其是对于存储型XSS漏洞。这主要取决于可能含有XSS漏洞的业务流程针对用户参数的过滤程度或者当前的防护手段。由于XSS漏洞最终仍需要业务使用者浏览后方可触发执行,导致某些后台场景需要管理员触发后方可发现。因此,漏洞是否存在且可被利用,很多时候需要较长时间才会得到结果。15 项目六 Web网站攻击与防范l目前市场上常见的Web漏洞扫描器均可扫描反射型XSS漏洞,并且部分基于浏览器的
11、XSS漏洞测试插件可测试存储型XSS漏洞。但以上工具均会存在一定程度的误报,因此需要安全人员花费大量时间及精力对检测结果进行分析测试。所以,使用XSS扫描工具配合手工测试才是发现XSS漏洞的最佳方法。l手工测试XSS漏洞的一般流程包括以下几个步骤。l(1)漏洞挖掘,寻找输入点。一般情况下,XSS攻击是通过“HTML注入”方式来实现的。也就是说,攻击者通过提交参数,意图修改当前页面的HTML结构。XSS攻击成功时,提交的参数格式可在当前页面拼接成可执行的脚本。可见,XSS漏洞存在的要求是:当前页面存在参数显示点,且参数显示点可被用户控制输入。因此,寻找用户端可控的输入点是XSS攻击成功的第一步。
12、16 项目六 Web网站攻击与防范l在一个常规的网站中,反射型XSS攻击一般存在于网站的搜索页面、登录页面等用户的简单交互页面,或者GET型请求的URL里。存储型XSS一般发生在留言板、在线信箱、评论栏等处,表现特征是用户可自行输入数据,并且数据会提交给服务器。l(2)寻找输出点。XSS攻击的受害者是访问过包含XSS恶意代码页面的用户,输入内容需要在用户页面上进行展示才能展开XSS攻击。针对一般的留言板、评论栏系统,渗透测试人员能根据经验轻松判断出输出点的位置;对于一些不常见的系统,可以通过将输入内容在回显页面中进行搜索来确定输出的位置。测试主要基于两个目的:l确定网站对输入内容是否进行了输出
13、,判断是否可以展开XSS攻击。l根据输出的位置的HTML环境来编写有效的XSS代码。17 项目六 Web网站攻击与防范l有点输出点无法直接回显,例如一些网站的“站长信箱”模块。用户输入的内容可能不会在前台展示,或者需要一定的时间通过人工审核后才能展示,因此也就无法直接观察测试结果,这给测试输出点带来了很大的难度。这种情况下,一般通过经验判断是否会输出,或者直接尝试XSS攻击窃取Cookie。由于后台审核的一般是管理账户,若测试成功可能直接获得管理权限,这也就是俗称的“XSS盲打后台”。l(3)测试基本跨站代码。通过上面两个步骤,可发现具体的输入点及输出位置,那么存在XSS漏洞的基本条件已经具备
14、了。但XSS攻击在这个测试点是否能顺利进行,就需要通过一些基本的跨站代码来测试了。如果其中环节被过滤,则攻击依然无效。测试XSS漏洞的经典方式就是“弹窗测试”,即在输入中插入一段可以产生弹窗效果的JavaScript脚本,如果刷新页面产生了弹窗,表明XSS测试成功。一般的弹窗测试脚本如下:lalert(/xss/)l这段代码的意义是:通过JavaScript执行弹窗命令,弹窗命令为alert,窗口显示内容为/xss/(当然也可以自定义弹窗显示的内容)。18 项目六 Web网站攻击与防范l任务实施l本次任务实施的拓扑示意图如图6-37所示。图6-37 XSS漏洞检测及防范拓扑示意图19 项目六
15、Web网站攻击与防范l1对目标网页进行XSS漏洞测试。l步骤1 访问目标网页,寻找其输入点和输出点,如图6-38所示。该网页是一个类似论坛的页面。当用户输入了自己的名字和所要发送的消息,点击“Sign Guestbook”按钮,该用户的名字和消息就会显示在下方的消息输出区域。20 项目六 Web网站攻击与防范图6-38 XSS漏洞测试第一步21 项目六 Web网站攻击与防范l步骤2 编写测试代码。在Message文本框中输入经典XSS攻击测试脚本lalert(“haha”)l点击“Sign Guestbook”按钮后发现出现了弹窗效果,如图6-39所示,说明该网页存在XSS漏洞。22 项目六
16、Web网站攻击与防范图6-39 XSS漏洞测试第二步23 项目六 Web网站攻击与防范l步骤3 刷新该页面,发现即使没用任何输入,仍旧会有弹窗。说明该XSS漏洞是一个存储型XSS。之前写的测试脚本已经被写入数据库中存储下来,每次刷新页面,都要读取数据库,都会执行该测试脚本。l步骤4 利用XSS漏洞获取网页的Cookie。在Message文本框中输入漏洞利用的语句:lalert(document.cookie)l点击“Sign Guestbook”按钮后发现弹窗中包含的是当前页面的Cookie,如图6-40所示。该语句的基本功能也是弹窗,但是其弹出的内容是document.cookie,也即是获
17、取当前页面的Cookie。24 项目六 Web网站攻击与防范图6-40 XSS漏洞利用获取Cookie25 项目六 Web网站攻击与防范l知识链接:Web漏洞靶机DVWAlDVWA(Damn Vulnerable Web App)是一个基于PHP/MySQL的充满漏洞的 Web应用程序。它的主要目标是帮助安全专业人员在一个合法的环境中测试他们的技能和工具,帮助web开发人员更好地理解保护web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习web应用程序安全。官方网站为:https:/www.dvwa.co.uklDVWA共有十二个模块,分别是Brute Force(暴力破解)、Comm
18、and Injection(命令行注入)、CSRF(跨站请求伪造)、File Inclusion(文件包含)、File Upload(文件上传)、Insecure CAPTCHA(不安全的验证码)、SQL Injection(SQL注入)、SQL Injection(Blind)(SQL盲注)、Weak Session IDs(弱会话ID)、XSS(DOM)(DOM型跨站脚本)、XSS(Reflected)(反射型跨站脚本)、XSS(Stored)(存储型跨站脚本)。每个模块的代码都有4种安全等级:Low、Medium、High、Impossible。通过从低难度到高难度的测试并参考代码变化可
19、帮助学习者更快的理解漏洞的原理。lDVWA是安全专业初学者进行Web漏洞学习的非常好的工具。本次任务的目标网站即是使用的DVWA中的XSS(Stored)模块。26 项目六 Web网站攻击与防范l2XSS攻击防范措施。lXSS的原理比较直观,就是注入一段能够被浏览器解释执行的代码,并且通过各类手段使得这段代码“镶嵌”在正常网页中,由用户在正常访问中触发。然而,一旦此类安全问题和代码联系起来,会直接导致镶嵌的内容千变万化。因此,XSS漏洞一旦被利用,所造成的危害往往不是出现一个弹窗那么简单。lXSS作为安全漏洞已出现在安全人员及公众视野多年,防护思路相对成熟,但是要想很好地防御它却不是那么简单。
20、究其原因,一是客户端使用的Web浏览器本身就存在很多安全问题,而这些浏览器正好是XSS的攻击战场;二是Web应用程序中存在广泛的输入/输出交互点,开发人员却常常忽视此问题,即使已经存在数量巨大的漏洞,在没有影响正常业务开展的情况下,开发人员也无暇去修补。27 项目六 Web网站攻击与防范lXSS攻击是由于Web应用对用户的输入没有严格过滤引起的,但是恶意脚本却是在客户端的浏览器上运行的,危害也是客户端。因此,对XSS的防范分为两个部分。l(1)服务端防范措施。Web程序应该对用户的输入进行严格检测,包括是否输入数据过长,是否包含非法字符,是否包含JavaScript和ASPScript标签等。l(2)客户端防范措施。XSS最终是在客户端上执行,在客户端可以采取提高浏览器的安全等级、关闭Cookies、禁用脚本等措施。28 项目六 Web网站攻击与防范THANKS
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。