【问题标题】:Bypass HTML Encoding/Escaping for XSS绕过 XSS 的 HTML 编码/转义
【发布时间】:2019-04-20 22:31:59
【问题描述】:

当您在名为“Fortnite”的游戏中发布地图时,它会要求提供名称、描述和可选的 Youtube 视频。我想要做的是将“描述”设置为脚本标签。检查site here 上的描述并编辑为 html 以查看发生的编码,您输入的描述设置为该 island-header-tagline h3 标记

我正在尝试在<h3> 标记上运行<script> 标记。但是,似乎当我尝试将脚本标记注入 h3 标记时,它会 html 对其进行编码(<<>>)。所以它实际上并没有将其识别为 html 标记并且不运行脚本。有谁知道这将如何实现?谢谢。

编辑:这是我想要实现的目标:假设这是输入的位置:<h3>USER INPUT</h3>。我正在尝试做这样的事情<h3></h3><script>alert('test');</script> 但是<> 被转义为<>

P.S.:我正在学习 XSS(用于非恶意目的)

【问题讨论】:

  • 如果您向我们展示您用来尝试实现此目标的代码,将会更加清晰
  • 对不起,所以说这是输入的地方:&lt;h3&gt;USER INPUT&lt;/h3&gt;。我正在尝试做这样的事情&lt;h3&gt;&lt;/h3&gt;&lt;script&gt;alert('test');&lt;/script&gt; 但是 被转义为 <和>编辑:至于脚本如何进入

    标记,它是一个生成的页面,并且输入在生成时设置为那里。

  • 是的,但是你如何注入它?硬编码?或者使用一些服务器端脚本?另外,请通过问题的“编辑”按钮添加额外的代码/信息,而不是通过 cmets。不过,您可以发表评论,让人们知道您已经完成了这项工作
  • "页面是通过程序生成的"什么程序?用什么语言写的?
  • 好的,我会尽可能多地解释,当您在名为“Fortnite”的游戏中发布地图时,它会要求提供名称、描述和可选的 Youtube 视频。我想要做的是将“描述”设置为脚本标签。检查网站上的描述 (epicgames.com/fn/1222-0331-8814) 并编辑为 html 以查看发生的编码,您输入的描述设置为 island-header-tagline h3 标记。

标签: javascript html xss


【解决方案1】:

Fortnite 要求“标题”,而你以 HTML 代码的形式提供标题,例如:

 <script>alert('test');</script>

然后 Fortnite 网络服务器接受该文本,并出于安全原因将其清除。这样做是为了保护最终用户免受试图插入类似代码的人的伤害

 <script>StealAllTheMoney();</script>

这也称为用户输入的“sanitization”。我们这样做是为了保护最终用户和我们的网络服务器。除非 Fortnite 方面存在漏洞,否则您无法绕过该清理,因为它escapes some characters 可能是恶意输入的一部分。在您的情况下,它至少是“>”。

【讨论】:

  • 谢谢!我猜 Fortnite 在安全方面做得很好,我对 xss 仍然不太了解,所以我很感激你的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 2015-08-20
相关资源
最近更新 更多