1. beplay体育能用吗网络安全学院
  2. 跨站脚本

跨站脚本

在本节中,我们将说明什么是跨站点脚本,描述跨站点脚本漏洞的不同品种,并阐明如何查找和防止跨站点脚本。

什么是跨站点脚本(XSS)?

跨站点脚本(也称为XSS)是一个Web安全漏洞,允许攻击者损害用户与脆弱应用程序的交互。beplay体育能用吗它允许攻击者规避相同的原始策略,该策略旨在将不同的网站彼此隔离。beplay体育能用吗跨站点脚本漏洞通常允许攻击者伪装成受害者用户,执行用户能够执行的任何操作,并访问用户的任何数据。如果受害者用户在应用程序中具有特权访问权限,则攻击者可能能够完全控制应用程序的所有功能和数据。

XSS如何工作?

跨站点脚本通过操纵脆弱的网站来工作,以便将恶意的JavaScript返回给用户。beplay体育能用吗当恶意代码在受害者的浏览器内执行时,攻击者可以完全损害其与应用程序的互动。

跨站脚本

XSS概念证明

您可以通过注入有效载荷来确认大多数XSS漏洞,该有效负载使您自己的浏览器执行一些任意的JavaScript。长期以来,使用警报()为此目的起作用,因为它是短暂的,无害的,而且很难被成功称为。实际上,您可以通过调用我们的大多数XSS实验室来解决警报()在模拟受害者的浏览器中。

不幸的是,如果您使用Chrome,则有些搭配。从第92版开始(2021年7月20日),防止跨孔iframes致电警报()。由于这些用于构建一些更高级的XSS攻击,因此您有时需要使用替代的POC有效载荷。在这种情况下,我们建议打印()功能。如果您有兴趣了解有关此变化的更多信息以及我们为什么喜欢打印(),,,,查看我们的博客文章就此主题而言。

作为我们实验室中的模拟受害者使用Chrome,我们已经修改了受影响的实验室,以便他们也可以使用打印()。我们在相关的指令中已经在说明中指出了这一点。

XSS攻击的类型是什么?

XS攻击有三种主要类型。这些是:

  • 反映XSS,恶意脚本来自当前的HTTP请求。
  • 存储的XSS,恶意脚本来自网站的数据库。beplay体育能用吗
  • 基于DOM的XSS,其中漏洞存在于客户端代码而不是服务器端代码中的位置。

反映的跨站点脚本

反映XSS是最简单的跨站点脚本。当应用程序在HTTP请求中接收数据时,会产生它,并以不安全的方式将数据包含在即时响应中。

这是一个简单的示例反映XSS脆弱性:

https://insecure-beplay体育能用吗website.com/status?message=all+ass+well。

状态:一切都很好。

该应用程序不执行任何其他数据处理,因此攻击者可以轻松构建这样的攻击:

https://insecure-beplay体育能用吗website.com/status?message=

状态:

如果用户访问攻击者构建的URL,则在用户的会话与应用程序的上下文中,攻击者的脚本在用户的浏览器中执行。到那时,脚本可以执行任何操作,并检索用户访问的任何数据。

存储的跨站点脚本

存储的XSS(也称为持久性或二阶XSS)当应用程序从不受信任的源接收数据并以不安全的方式包含其后来的HTTP响应中时,就会出现。

有关的数据可以通过HTTP请求提交给申请。例如,对博客文章,聊天室中的用户昵称或客户订单的联系详细信息进行评论。在其他情况下,数据可能来自其他不受信任的来源。例如,显示通过SMTP接收到消beplay体育能用吗息的WebMail应用程序,显示社交媒体帖子的营销应用程序或网络监控应用程序显示来自网络流量的数据包数据。

这是一个简单的示例存储的XSS脆弱性。消息板应用程序使用户可以提交给其他用户显示的消息:

你好,这是我的消息!

该应用程序不执行任何其他数据处理,因此攻击者可以轻松发送攻击其他用户的消息:

<脚本>/ *不好的东西在这里... */

基于DOM的跨站点脚本

基于DOM的XSS(也称为DOM XSS)当应用程序包含一些客户端JavaScript时,该应用程序通常以不安全的方式从不受信任的源处理数据,通常是通过将数据写回DOM。

在下面的示例中,应用程序使用一些JavaScript从输入字段读取值,并将该值写入HTML中的元素:

var search = document.getElementById('search')。值;var Results = document.getElementById('result');results.innerhtml ='您搜索:' + search;

如果攻击者可以控制输入字段的值,他们可以轻松构建导致其脚本执行的恶意值:

您搜索了:

在典型情况下,输入字段将从HTTP请求的一部分(例如URL查询字符串参数)中填充,从而使攻击者以与反射XSS相同的方式使用恶意URL进行攻击。

XS可以使用什么?

利用跨站点脚本漏洞的攻击者通常能够:

  • 假名或化妆为受害者用户。
  • 执行用户能够执行的任何操作。
  • 阅读用户能够访问的任何数据。
  • 捕获用户的登录凭据。
  • 执行网站的虚拟损失。beplay体育能用吗
  • 将特洛伊木马功能注入网站。beplay体育能用吗

XSS漏洞的影响

XSS攻击的实际影响通常取决于应用程序的性质,其功能和数据以及受损用户的状态。例如:

  • 在所有用户都是匿名且所有信息都是公开的小册子应用程序中,影响通常是最小的。
  • 在持有敏感数据(例如银行交易,电子邮件或医疗保健记录)的应用程序中,影响通常会很严重。
  • 如果受损的用户在应用程序中具有提高特权,那么影响通常将是至关重要的,从而使攻击者能够完全控制脆弱的应用程序并妥协所有用户及其数据。

如何查找和测试XSS漏洞

可以使用Burp Suite的Suite迅速而可靠地发现绝大多数XSS漏洞bepaly下载

对反射和存储的XSS进行手动测试通常涉及将一些简单的唯一输入(例如短字母数字字符串)提交应用程序中的每个入口点,识别每个位置在HTTP响应中返回提交的输入,并单独测试每个位置以确定每个位置是否适当制作的输入可用于执行任意JavaScript。这样,您可以确定语境在其中发生XSS并选择合适的有效载荷来利用它。

由URL参数引起的基于DOM的XS的手动测试涉及一个类似的过程:使用浏览器的开发人员工具在参数中放置一些简单的唯一输入,以搜索此输入的DOM,并测试每个位置以确定它是否可利用。但是,其他类型的DOM XS难以检测。找到基于DOM的漏洞在非基于URL的输入中(例如document.cookie)或非基于HTML的水槽(例如Settimeout),没有替代审查JavaScript代码的替代品,这可能非常耗时。Burp Suite的Webeplay体育能用吗b漏洞扫描仪结合了JavaScript的静态和动态分析,以可靠地自动化对基于DOM的漏洞的检测。

内容安全策略

内容安全策略(CSP)是一种浏览器机制,旨在减轻跨站点脚本和其他漏洞的影响。如果使用CSP的应用程序包含类似XSS的行为,则CSP可能会阻碍或阻止漏洞的利用。通常,可以规避CSP以实现基本脆弱性的利用。

悬空的标记注射

悬挂的标记注射是一种技术,可用于在无法进行全面跨站点脚本漏洞的情况下捕获数据交叉域,这是由于输入过滤器或其他防御措施。通常可以利用它来捕获其他用户可见的敏感信息,包括可用于代表用户执行未经授权操作的CSRF代币。

如何防止XSS攻击

在某些情况下,防止跨站点脚本是微不足道的,但是根据应用程序的复杂性及其处理用户控制数据的方式,可能会更加困难。

通常,有效防止XSS漏洞可能涉及以下措施的组合:

  • 到达时输入过滤器。在收到用户输入的点,请根据预期或有效输入尽可能严格过滤。
  • 对输出进行编码数据。在HTTP响应中输出的用户控制数据的点,编码输出以防止将其解释为活动内容。根据输出上下文,这可能需要应用HTML,URL,JavaScript和CSS编码的组合。
  • 使用适当的响应标头。为了防止不打算包含任何HTML或JavaScript的HTTP响应中的XSS,您可以使用内容类型X-content-type-options标题以确保浏览器以您打算的方式解释响应。
  • 内容安全策略。作为最后一条防线,您可以使用内容安全策略(CSP)来减少仍然发生的任何XSS漏洞的严重性。

关于跨站点脚本的常见问题

XSS漏洞有多常见?XSS漏洞非常普遍,XSS可能是最常见的Web安全漏洞。beplay体育能用吗

XSS攻击有多常见?很难获得有关现实世界XSS攻击的可靠数据,但是与其他漏洞相比,它可能频繁利用它。

XSS和CSRF有什么区别?XSS涉及导致网站返回恶意JavaScriptbeplay体育能用吗,而CSRF涉及诱使受害者用户执行他们不打算执行的操作。

XSS和SQL注入有什么区别?XSS是针对其他应用程序用户的客户端漏洞,而SQL注入是针对应用程序数据库的服务器端漏洞。

如何防止PHP中的XSS?用允许字符的白名单过滤您的输入,并使用类型提示或类型铸件。逃脱您的输出htmlentitiesent_quotes对于HTML上下文,或JavaScript Unicode逃脱了JavaScript上下文。

如何防止Java中的XSS?用允许字符的白名单过滤您的输入,并使用诸如Google guava之类的库来为HTML上下文进行HTML字母键入您的输出,或使用JavaScript Unicode Escaps用于JavaScript上下文。

免费注册以跟踪您的学习进度

通过Portswigger的网络安全学院工作的好处beplay官网可以赌beplay体育能用吗
  • 练习在现实目标上利用漏洞。

  • 记录您从学徒到专家的发展。

  • 看看您在我们的名人堂中排名。

已经有一个帐户?在此登录