网络安全之XSS漏洞的危害.docx

上传人:飞****2 文档编号:56224777 上传时间:2022-11-01 格式:DOCX 页数:9 大小:248.79KB
返回 下载 相关 举报
网络安全之XSS漏洞的危害.docx_第1页
第1页 / 共9页
网络安全之XSS漏洞的危害.docx_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《网络安全之XSS漏洞的危害.docx》由会员分享,可在线阅读,更多相关《网络安全之XSS漏洞的危害.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、网络安全课程论文-浅谈XSS跨站脚本攻击的危害姓名:代雷波学号:专业:网络工程2013年5月21日浅谈XSS跨站脚本攻击的危害众所周知,网站中包含大量的动态内容以提高用户体验,比过去要复杂得多。所谓动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容。动态站点会受到一种名为“跨站脚本攻击”(Cross Site Scripting, 安全专家们通常将其缩写成XSS)的威胁,而静态站点则完全不受其影响。什么是XSS 跨站攻击?跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链

2、接中插入恶意代码,就能够盗取用户信息。攻击者通常会用十六进制(或其他编码方式)将链接编码,以免用户怀疑它的合法性。网站在接收到包含恶意代码的请求之后会产成一个包含恶意代码的页面,而这个页面看起来就像是那个网站应当生成的合法页面一样。许多流行的留言本和论坛程序允许用户发表包含HTML和javascript的帖子。假设用户甲发表了一篇包含恶意脚本的帖子,那么用户乙在浏览这篇帖子时,恶意脚本就会执行,盗取用户乙的session信息。有关攻击方法的详细情况将在下面阐述。那么到底什么是XSS呢?我这里简单的说一下,举例子HTML代码: * 这是个简单的HTML的代码。这段代码的意思是设置字体大小为“2”

3、,假设我想发表这个代码,我发表这个代码是显示给大家看,给用户看!但是浏览器误认为这是一段html代码,于是将它作为HTML代码进行执行,这时候我们发表的字体可能被这段代码修饰成了2号字体。也就是说这段代码被浏览器执行成了HTML语言,而不是直接输出来给用户看!不知道大家是否明白。再举例 alert(XSS)前天18:09 上传下载附件 (2.89 KB) 。这是一个最简单的javascript脚本语句,javascript是可以嵌入到HTML页面中,并且也会被执行,js脚本不仅可以在单个页面中执行,也可以单独作为js文件进行调用。那么是什么意思呢?它的含义就是弹出一个警告框,框中的内容为XSS

4、。如下图:假设我们想将代码输出给用户给大家看,但又被浏览器当成了javascript语言执行了,弹出一个提示内容为XSS的警告框,这就说明网站存在XSS跨站漏洞,它会将用户提交的特殊代码当成脚本语言去执行。不知道大家是否能听懂,就是我们提交一些js或者html代码却被浏览器当作脚本语言执行。XSS跨站攻击的类型根据XSS跨站脚本攻击存在的形式及产生的效果,可以将其分为以下三类。一、 反射型XSS跨站脚本攻击反射型XSS脚本攻击即如我们上面所提到的XSS跨站脚本攻击方式,该类型只是简单地将用户输入的数据直接或未经过完善的安全过滤就在浏览器中进行输出,导致输出的数据中存在可被浏览器执行的代码数据。

5、由于此种类型的跨站代码存在于URL中,所以黑客通常需要通过诱骗或加密变形等方式,将存在恶意代码的链接发给用户,只有用户点击以后才能使得攻击成功实施。二、 存储型XSS跨站脚本攻击存储型XSS脚本攻击是指Web应用程序会将用户输入的数据信息保存在服务端的数据库或其他文件形式中,网页进行数据查询展示时,会从数据库中获取数据内容,并将数据内容在网页中进行输出展示,因此存储型XSS具有较强的稳定性。存储型XSS脚本攻击最为常见的场景就是在博客或新闻发布系统中,黑客将包含有恶意代码的数据信息直接写入文章或文章评论中,所有浏览文章或评论的用户,都会在他们客户端浏览器环境中执行插入的恶意代码。如流行的Bo-

6、Blog程序的早期版本中存在对用户提交评论数据过滤不严导致的XSS跨站脚本攻击漏洞,黑客可以在文章评论中提交插入恶意数据的UBB代码,提交后,Bo-Blog程序会将数据保存至数据库中,当用户浏览该日志时,就会执行插入的恶意代码,如图3所示。三、 基于DOM的XSS跨站脚本攻击基于DOM的XSS跨站脚本攻击是通过修改页面DOM节点数据信息而形成的XSS跨站脚本攻击。不同于反射型XSS和存储型XSS,基于DOM的XSS跨站脚本攻击往往需要针对具体的javascript DOM代码进行分析,并根据实际情况进行XSS跨站脚本攻击的利用。让我们来针对如下代码进行详细分析:DOM Based XSS De

7、mofunction xsstest() var str = document.getElementById(input).value; document.getElementById(output).innerHTML = ;以上代码的作用是提交一个图片的URL地址以后,程序会将图片在页面中进行展示,如我们提交百度LOGO图片的地址三、 基于DOM的XSS跨站脚本攻击基于DOM的XSS跨站脚本攻击是通过修改页面DOM节点数据信息而形成的XSS跨站脚本攻击。不同于反射型XSS和存储型XSS,基于DOM的XSS跨站脚本攻击往往需要针对具体的javascript DOM代码进行分析,并根据实际情况

8、进行XSS跨站脚本攻击的利用。让我们来针对如下代码进行详细分析:DOM Based XSS Demofunction xsstest() var str = document.getElementById(input).value; document.getElementById(output).innerHTML = ;以上代码的作用是提交一个图片的URL地址以后,程序会将图片在页面中进行展示,如我们提交百度LOGO图片的地址XSS跨站攻击的危害盗取用户的cookiesXSS跨站漏洞不仅仅是弹框,而且可以盗取用户的cookies。说到cookies,我这里就要解释下了什么是cookies。举

9、例说明:我们登录到红客联盟论坛时候,记住了密码,下次我们再登录的时候就不需要再次输入帐号密码了,这是因为浏览器读取了我们电脑上的cookies文件,验证了我们的帐号密码。所以我们无需输入密码就可以。这种cookies是保存在硬盘中的!还有一种应该是保存在内存中,举例说我们登录了红客联盟,然后我们在QQ群里面看到了一个帖子地址,地址是红客联盟的某个帖子地址,我们在QQ群里点开了该地址,一个新的浏览器窗口打开了,但是会发现我们已经登录了红客联盟的号。但是一旦关闭登录了红客联盟的网站窗口,再次登录时候就需要输入帐号密码。再举例说明:我们登录某网站后台,输入了帐号密码,然后将后台的一个配置页面复制到浏

10、览器地址上,然后回车!会发现不需要验证你的后台帐号密码了,这是因为读取了内存中的cookies,已经验证你的身份了。这就是cookies!下面则是上面所说特殊代码被浏览器执行了弹出了cookies我已经说明了cookies的作用,很可悲的是!cookies是可以改的,具体这么改?可以使用火狐浏览器、明小子、啊D注入工具去修改!一段代码alert(document.cookies)前天18:09 上传下载附件 (3.99 KB) 。这段代码是js的代码,意思是弹出一个框子,框中的内容是用户的cookies信息。如果你学过js脚本等语言就知道,对于一个存在XSS跨站漏洞的网站,黑客是可以编造出脚本

11、代码盗取用户的cookies,特别是盗取管理员的cookies!黑客是怎么盗取用户的cookies举例说明这一个例子:比如某个论坛发帖子存在XSS跨站漏洞,黑客就会在里面发一个脚本代码的帖子,当管理员浏览到这个页面的时候,页面被执行了黑客所发表的js代码,管理员的cookies马上就会被黑客收取,黑客收取之后登录网站的后台,然后将cookies修改为盗取的管理员的cookies,再次刷新页面会发现居然进去了后台!这是因为网站验证了用户的cookies是管理员的,所以允许进入后台操作!那么这些代码这么来?又如何发送给黑客?具体我也不是很清楚,但我知道08小组开发了一套XSS跨站的平台,我也没有邀

12、请码,但是具体流程可能是这样的:在XSS跨站平台中,设置黑客用于接受cookies的邮箱地址,然后生成一段脚本代码,这段代码的含义是:无形中悄悄输出用户的cookies到某个文件中,然后读取该文件中的cookies信息,发送到指定的邮箱中。试着想一想,发在某个留言板中,当管理员看到了,那么管理员的cookies就被盗取了,黑客再进入后台修改cookies,浏览器验证cookies信息为管理员的,则无需输入帐号密码直接进入后台!进了后台干嘛,我想黑客一定想得到webshellXSS跨站脚本攻击的防范通过以上针对不同种情况的XSS跨站脚本攻击的描述,我们了解到了在复杂的Web环境中,XSS的利用是

13、千变万化的,如何能够有效地防范XSS跨站脚本攻击问题一直都是浏览器厂商和网站安全技术人员关注的热门话题。现在很多浏览器厂商都在自己的程序中增加了防范XSS跨站脚本攻击的措施,如IE浏览器从IE8开始内置了XSS筛选器,Firefox也有相应的CSP、Noscript扩展等。而对于网站的安全技术人员来说,提出高效的技术解决方案,保护用户免受XSS跨站脚本攻击才是关键。下面我们结合网站安全设计,描述一下如何通过技术手段实现XSS跨站脚本攻击的防范。利用HttpOnlyHttpOnly最初是由微软提出的,目前已经被多款流行浏览器厂商所采用。HttpOnly的作用不是过滤XSS跨站脚本攻击,而是浏览器

14、将禁止页面的Javascript访问带有HttpOnly属性的Cookie,解决XSS跨站脚本攻击后的Cookie会话劫持行为。httpOnly是在Set-Cookie时进行标记的,设置的Cookie头格式如下: Set-Cookie: =; = ; expires=; domain= ; path=; secure; HttpOnly以php为例,在php 5.2版本时就已经在Setcookie函数加入了对HttpOnly的支持,如 通过以上代码就可以设置user这个cookie,将其设置为HttpOnly,setcookie函数实质是通过向客户端发送原始的HTTP报文头进行设置的,docu

15、ment将不可见这个Cookie,所以使用document.cookie就取不到这个Cookie,也就是先了对Cookie的保护。完善的输入和输出检查由于三种XSS跨站脚本攻击类型的漏洞成因可不相同,针对输入输出的检查一部分适用于反射型XSS与存储型XSS,而另外一些检查适用于基于DOM的XSS。A.防范反射型XSS和存储型XSS输入检查在大多数的时候都是对可信字符的检查或输入数据格式的检查,如用户输入的注册账号信息中只允许包括字母、数字、下划线和汉字等,对于输入的一切非白名单内的字符均认为是非法输入。数据格式如输入的IP地址、电话号码、邮件地址、日期等数据都具有一定的格式规范,只有符合数据规

16、范的输入信息才允许通过检查。输出检查主要是针对数据展示过程中,应该对数据信息进行HTML编码处理,将可能存在导致XSS跨站脚本攻击的恶意字符进行编码,在不影响正常数据显示的前提条件下,过滤恶意字符。常见的可能造成XSS跨站脚本攻击的字符及其HTML编码如下:“"'& >除了常用的编码外,任何字符都可以使用其ASCII码进行HTML编码,如%%**B.防范基于DOM的XSS从基于DOM的XSS的定义及其触发方式我们发现,当基于DOM的XSS跨站脚本攻击发生时,恶意数据的格式与传统的XSS跨站脚本攻击数据格式有一定的差异,甚至可以在不经过服务器端的

17、处理和相应的情况下,直接对客户端实施攻击行为,因此上述我们应用于防范反射型XSS和存储型XSS的方法并不适用于防范基于DOM的XSS跨站脚本攻击。针对基于DOM的XSS防范的输入检查方法,我们发现在客户端部署相应的安全检测代码的过滤效果要比在服务器端检测的效果更加明显。例如,我们可以通过如下客户端检测代码来保证用户输入的数据只包含字母、数字和空格,代码如下:var str = document.URL;str = str.substring(str.indexOf(username=)+9, str.length);str = unescape(str);var regex=/(A-Za-z0

18、-9+s)*$/;if (regex.test(str)document.write(str);同样,我们也可以通过在服务端实现类似上述数据检查的功能,如在服务器端检测URL参数是否为预定的参数username,并对username参数的内容进行检测,确认数据内容是否为只包含数字、字母和空格符,实现服务端的数据过滤。但是,由于客户端数据的可控性,这种服务端检测的效果要明显弱于客户端检测。基于DOM的XSS输出检查与反射型XSS漏洞输出检查的方法相似,在将用户可控的DOM数据内容插入到文档之前,Web应用程序应对提交的数据进行HTML编码处理,将用户提交的数据中可能存在的各种危险字符和表达式进行

19、过滤以安全的方式插入到文档中进行展现,如可以通过如下函数实现在客户端javascript中执行HTML编码处理。function jsEncode(str)var d = document.createElement(div);d.appendChild(document.createTextNode(str);return d.innerHTML;XSS跨站脚本攻击作为Web应用安全领域中最大威胁之一,不仅仅危害Web应用业务的正常运营,对访问Web应用业务的客户端环境和用户也带来了直接安全影响。虽然XSS跨站脚本攻击在复杂的Web应用环境中利用方式千变万化,但是网络安全人员通过对Web应用的各种环境进行详细分析和处理,完全阻断XSS跨站脚本攻击是可以实现的。如何有效防范和阻止XSS跨站脚本攻击,保障Web应用系统的业务安全和正常运营,保护客户端用户免受XSS跨站脚本攻击行为的侵害,是Web应用系统管理人员和网络安全产品开发人员的共同职责。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁