📜  了解 Blind XSS 以进行漏洞赏金狩猎

📅  最后修改于: 2022-05-13 01:56:45.024000             🧑  作者: Mango

了解 Blind XSS 以进行漏洞赏金狩猎

盲 XSS 漏洞

盲 XSS 与存储的跨站点脚本攻击非常相似,其中攻击者提供的输入由 Web 服务器保存或存储,并且此存储的输入反映在相互链接的各种其他应用程序中。它仅在攻击者的输入被 Web 服务器存储在数据库中并在应用程序的另一部分或另一个应用程序中作为恶意脚本执行时触发。

攻击者或黑客在某些网页上“盲目地”注入恶意脚本或有效负载,而不保证它会执行。有可能将其payload保存到数据库中的网页是Blind XSS攻击的最重要载体。

如果联系表格是网页的一部分,并且必须将其数据存储到 Web 服务器或数据库,那么攻击者就会在这里发起攻击。攻击者在联系表单中注入代码并等待服务器端用户或团队成员打开或触发该恶意代码或有效负载执行。

盲 XSS 是一种持久(存储)跨站点脚本攻击。这是一个不同的挑战。它不像 Blind SQLI 那样可以快速获得反馈。你不知道你的恶意脚本最终会去哪里。说真的,您甚至不知道您的恶意脚本或有效负载是否会执行或何时执行。

盲 XSS 的图解表示:

盲目 XSS 的步骤

 

影响

通过使用跨站点脚本可以利用许多不同的攻击,包括:

  1. 劫持用户的活动会话。
  2. 安装网络钓鱼攻击。
  3. 拦截数据并执行中间人攻击。

盲目的 XSS 攻击可能发生在:

  1. 联系/反馈页面
  2. 日志查看器
  3. 异常处理程序
  4. 聊天应用程序/论坛
  5. 客票申请
  6. Web 应用程序防火墙
  7. 任何需要用户审核的应用程序
  8. 客户服务应用

例子:  

输入字段:

例如,假设您有一个内部应用程序来管理在线商店的库存。在此应用程序中,经销商输入存储在数据库服务器中的不同产品的信息。一个在线商店应用程序也使用相同的数据库,该应用程序面向所有客户暴露在互联网上,需要从初始数据库中读取产品信息。如果用户将恶意字符串注入内部应用程序,则在线商店是否正确实施输入验证控制并不重要,因为商店中的信息是从同一个数据库中读取的,因此商店将显示攻击。

反馈表:

例如在反馈表单中,攻击者可以使用表单提交恶意载荷,一旦应用程序的后端用户/管理员通过后端应用程序打开攻击者提交的表单,攻击者的载荷就会被执行。盲目的跨站点脚本在现实世界中很难确认,但最好的工具之一是 XSS Hunter。

异常处理程序

另一个盲 XSS 攻击示例是使用异常处理程序等日志记录解决方案。攻击者可以使用记录器的API,记录一些恶意代码而不是错误。在异常处理解决方案的仪表板中,显示记录的错误,恶意代码将被渲染和执行。

聊天论坛:

攻击者可以将恶意脚本放置在论坛或聊天论坛板的主题标题中。同样,最常见的是,服务器会将他们的帖子保存到数据库中,并且存储的信息可能会在一段时间内暴露给其他查看者,例如版主。在这种情况下,脚本在交付给普通用户时可能会变得干净,这将禁用恶意代码。但是,当论坛的版主加载论坛管理网页时,例如线程流行度报告,可能会加载恶意主题标题,从而执行攻击者的脚本,用窃取的信息进行回调,重定向用户或通过例如在管理界面中调用停止论坛的代码来导致拒绝服务攻击。典型的用户目标是论坛或聊天论坛版块的版主,他们从管理 Web 会话加载论坛内容以执行管理任务,其目的再次与安全相关。

检测 Web 应用程序中的 Blind XSS以进行漏洞赏金:

有一些工具可以让这种情况更容易检测和处理。 XSS Hunter 是一款出色的工具,可用于检测任何基于 Web 的应用程序中的盲 XSS。

它的工作方式是将有效负载作为外部 JavaScript 标记注入:

当应用程序中存在 XSS 漏洞时,此脚本将由客户端执行,并且脚本有效负载将执行。有效负载将拍摄页面的快照,以及 HTML 源、cookie(未设置 HttpOnly)和其他有用的基本信息。现在我们可以在用户触发它时缩小 XSS 漏洞的范围。该工具的另一个优点是它是开源的,因此您也可以设置私有实例。

Internet 上提供的更多检测工具有:

  1. 打嗝合作者
  2. 诺XSS
  3. bXSS 猎人

防止盲目 XSS 攻击:

与进攻方一样,防守方在安全方面也很重要。
因此,这里有一些防御方面或预防措施,可以将您的 Web 应用程序从 Blind XSS 中拯救出来。

  1. 实现这一点的最常见和最有效的方法是由 Web 开发人员审查代码并确保正确过滤任何用户输入。
  2. 除了检测易于检测的 XSS 漏洞外,您还需要一个执行无害渗透测试的专用工具。
  3. 如果您的网站是使用 HTML 5 等最新技术实现的,或者您确保您的 Web 服务器已完全修补,则 Web 应用程序可能仍然容易受到 XSS 的攻击。
  4. 永远不要信任用户提供的数据是一种很好的编码习惯。