如何解决 FCKeditor / CKeditor 中的 XSS 安全问题?

信息安全 应用安全 攻击预防 php xss
2021-08-31 19:45:46

我们通过一家外部公司进行的安全报告报告了我们在 PHP 应用程序中使用的 FCKeditor 中的 XSS 漏洞。

他们指出,访问 URL,例如:

http://www.ourdomain.com/fckeditor/editor/filemanager/browser/mcpuk/connectors
    /php/connector.php?Command=837<script>alert(0)</script>&Type=837
    <script>alert(1)</script>&CurrentFolder=837<script>alert(2)</script>
    &ExtraParams=837<br><br><br><iframe src=http://www.google.com/ 
    height=100% width=100%></iframe>

导致生成如下代码(从浏览器 -> 查看源代码):

Invalid command.Array<br />
(<br />
[Command] => 837<script>alert(0)</script><br />
[Type] => 837<script>alert(1)</script><br />
[CurrentFolder] => 837<script>alert(2)</script><br />
[ExtraParams] => 837<br>
<br>
<br>
<iframe src=http://www.google.com/ height=100% width=100%></iframe><br />
)<br />

我不知道 FCKeditor 的这个内部 php 脚本是做什么的,它是否会成为我系统中 XSS 内容的来源?这是一个真正的问题吗?

2个回答

通常,您对 3rd 方组件中的 vulns 无能为力。
在您的选择中:

  • 首先升级到最新版本。如果这样解决了它,你就完成了。
  • 负责任地联系供应商,并从他们那里得到修复。
  • 如果它是开源的,请尝试自己修补它 - 或找人修补。只要确保你做对了,修复 XSS可能会很复杂和/或令人困惑。
  • 如果上述选项均不可行,请考虑从系统中删除此组件。盲目地使用其他组件时,如果您无法修复它,这总是有风险的......
  • 事实上,在将任何第 3 方代码集成到您的系统之前,将其作为一项政策进行安全审查。
  • 如果您绝对必须继续使用易受攻击的组件 - 请重新考虑 :)。但实际上,如果交易已完成,请考虑使用 WAF(Web 应用程序防火墙)对其进行保护。不能解决问题,但它可以帮助防止利用...

FCKEditor 是一个独立于平台的 Web 应用程序文本编辑器。

这种漏洞利用是反射型 XSS 攻击向量。您可以在此处阅读有关此问题的更多信息:can-anybody-explain-xss

发生这种情况是因为 FCKEditor 没有清理变量中给定的输入,导致应用程序将变量反映给用户。

我建议以下步骤:

  • 升级到最新的 FCKEditor
  • 自己修补它,如果这不能解决问题,我会通过对脚本进行适当的清理来自己修补它。在您的情况下,看起来一个简单的 (int) 强制转换就足以解决这个问题。
  • 尽快请求供应商补丁

您还可以在exploit-db.com 上查看FCKEditor的其他漏洞利用列表。请记住不断修补您的应用程序!