Wordpress - 使用Ajaxy Live Search插件的XSS

时间:2016-12-03 15:16:38

标签: ajax wordpress xss

我已经在我的wordpress中安装了Ajaxy Live Search Plugin v3.0.7,但在搜索的内容如下:

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

我可以在浏览器上看到警报。

使用firebug我可以看到在搜索框中输入时我正在调用

/wp-admin/admin-ajax.php

发送这些参数:

action = ajaxy_sf
search = false
sf_value = <script>alert('123');</script>

如何在搜索框中避免此问题? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

XSS是输出编码问题。它与请求中发送的参数无关,当发出响应时(相同的请求或不同的请求),漏洞会自行显示。

在任何响应中,输出都应根据上下文进行编码。根据插件的工作方式,它可以在服务器上创建部分html,也可以在发送AJAX请求时在浏览器中使用DOM主页。

如果它创建了部分html并将其作为搜索结果插入到页面中,那么生成部分html的视图应该通过添加输出编码来修复(即。htmlspecialchars()在php中,但是那里也是其他选择。)

如果它只是一个ajax请求并且页面dom是在javascript中操作的,那么应用程序应该确保只将变量作为文本节点插入,而不是将整个dom子树插入潜在的脚本节点。

无论哪种方式,我认为它应该由插件完成。如果它没有正确编写并且易受XSS攻击,那么解决它的唯一方法就是修复插件本身。