所在的位置: html >> html介绍 >> 跨站脚本攻击XSS

跨站脚本攻击XSS

中科白癜风 https://wapyyk.39.net/bj/zhuanke/89ac7.html

跨站脚本攻击(XSS)是一种客户端代码注入攻击。攻击者通过在合法的网页中注入恶意代码,达到在受害者的浏览器中执行恶意代码的目的。当受害者访问执行恶意代码的网页时,攻击就开始了。这些网页成为了将恶意代码发送到用户浏览器的工具。通常受到跨站脚本攻击的网页包括论坛、留言板以及可以评论的网页。

如果网页将用户的原始输入作为网页内容,那么它很容易受到XSS攻击,因为这类用户输入一定会被受害者的浏览器解析。XSS攻击可能存在于VBScript、ActiveX、Flash,甚至CSS中。但它在JavaScript中最常见,主要是因为JavaScript是大多数浏览体验的基础。

“跨站脚本攻击只影响用户吗?”

如果攻击者能利用某网页上的XSS漏洞,在用户浏览器上执行任意的JavaScript代码,那么该网站和它的用户都会被影响。像其他安全性问题一样,XSS不只会给用户造成困扰。如果它影响了你的用户,那么它也会影响你。

跨站脚本攻击也可能用于丑化原网站,而不是攻击网站用户。攻击者通过注入脚本,改变网站的内容,或者甚至将当前页面重定向到另一个网页,例如一个有恶意代码的网页。

攻击者能利用JavaScript做什么?

与诸如SQL注入这样的漏洞相比,我们一般会认为XSS漏洞是低风险的。起初,能在网页端执行JavaScript引起的后果可能并不严重。大多数浏览器都是在严格受控的环境中运行JavaScript,这使得JavaScript在访问用户的操作系统和文件上受到限制。但是,如果将JavaScript用于恶意内容中,它仍然会带来一定的风险:

网页其余部分能访问的所有对象,恶意的JavaScript都能访问。包括访问用户的cookie。用户的cookie通常被用来存储会话标志。如果攻击者获得了用户的会话cookie,他们便能伪装成该用户,利用其身份执行操作,并且访问用户的敏感数据。

JavaScript可以读取并任意修改浏览器中的DOM。还好,该情形只可能发生在JavaScript当前运行的网页中。

JavaScript可使用XMLHttpRequest对象,向任意站点发送带有任意数据的HTTP请求。

现代浏览器中的JavaScript可使用HTML5接口。例如可访问用户的地理位置、摄像头、麦克风,甚至是用户文件系统中的指定文件。虽然这些接口大多数都需要经过用户同意,但攻击者可通过社会工程学绕过这些限制。

通过以上几点,并结合社会工程学,不法之徒可发起更高级的攻击,包括:盗窃Cookie、种植木马、记录密钥、网络钓鱼和盗窃身份。XSS漏洞提供了完美的空间将攻击升级为更严重的攻击。跨站脚本攻击经常与其他类型的攻击一起被使用,例如:跨站请求伪造(CSRF)。

跨站脚本攻击的类型包括:存储型/持久化的XSS、反射型/非持久化的XSS和基于DOM的XSS。你可在XSS的类型一文中了解更多内容。

跨站脚本攻击如何工作

典型的XSS攻击有两个阶段:

为了在受害者的浏览器中运行恶意JavaScript代码,攻击者必须先找到一种方式将恶意代码注入到受害者访问的网页中。

之后,受害者必须访问有恶意代码的网页。如果攻击者有特定的攻击目标,该攻击者可使用社会工程学结合(或)网络钓鱼的方式给受害者发送恶意网址。

要完成第一步,易受攻击的网站需要将用户的输入直接包含在它的页面中。之后攻击者便能插入恶意代码片段,这些代码将在网页中使用并被受害者的浏览器视为源代码。也有一些XSS攻击的变体,攻击者利用社会工程学诱导用户访问某网址,并且该网址中就包含了恶意代码。

以下是服务端伪代码片段,用于在网页中展示最近的评论:

print"html"print"h1Mostrecent


转载请注明:http://www.aierlanlan.com/rzfs/3478.html