服务器 > 网络安全 > 漏洞分析

WordPress 4.0以下版本存在跨站脚本漏洞

47人参与 2014-12-03 漏洞分析

qq截图20141128094917

该漏洞是由芬兰it公司klikki oy的ceo jouko pynnonen发现的,只存在于wordpress4.0以下的版本中。据调查得知全球有86%的wordpress网站都感染了这一漏洞,也就意味着全球数百万的网站都存在着潜在的危险。一些知名网站也使用了wordpress软件,如time、ups、nbc sports、cnn、techcrunch 和freebuf:)

漏洞概述

wordpress中存在一系列的跨站脚本漏洞,攻击者利用跨站脚本伪造请求以欺骗用户更改登录密码,或者盗取管理员权限。

如jouko pynnonen解释道:

当博客管理员查看评论时,评论中的漏洞代码会自动在其web浏览器上运行。然后恶意代码会偷偷接管管理员账户,从而执行管理员操作。

为了证明他们的观点,研究人员创建了一个漏洞利用程序(exploits)。利用这个exploits,他们创建了一个新的wordpress管理员账户,改变了当前管理员密码,并在服务器上执行了攻击php代码。

漏洞分析

问题出在wordpress的留言处,通常情况下留言是允许一些html标签的,比如、等等,然而标签中有一些属性是在白名单里的,比如标签允许href属性,但是onmouseover属性是不允许的。

但是在一个字符串格式化函数wptexturize()上出现了问题,这个函数会在每一个留言上执行,函数的功能是把当前的字符转义成html实体,比如把“”转义为“”。为了防止干扰html格式,wptexturize()首先会以html标签为标准把文本分成若干段,除了html标签,还有方括号标签比如[code]。分割的功能是由下列正则表达式完成的。

在wp-includes/formatting.php代码的第156行:

$textarr = preg_split('/(<.*>|\[.*\])/us', $text, -1,                         

preg_split_delim_capture);

但是如果文章中混合着尖括号<>和方括号[]会造成转义混淆,导致部分代码没有转义。

攻击者可以通过这个漏洞在允许的html标签中注入样式参数形成xss攻击,比如通过建立一个透明的标签覆盖窗口,捕捉onmouseover事件。

漏洞利用测试

以下代码可以用于测试

[<a href="test" title="]">[" not vulnerable]

修复建议

这一漏洞很容易被攻击者利用,wordpress官方建议用户尽快更新补丁,而在新版wordpress 4.0.1已经修复了所有的漏洞。

wordpress官方于11月20日发布了官方补丁,目前大多数的wordpress网站上都会收到补丁更新提醒通知;如果有一些其他原因使得你无法更新补丁,klikki oy公司还提供了另外一个解决方案(workaround)可以修复该漏洞。

wptexturize可以通过在wp-includes/formatting.php开头增加一个返回参数避免这个问题:

function wptexturize($text) {        

return $text;                  // add this line        

global $wp_cockneyreplace;

额外提醒

如果你使用的是wp-statistics wordpress插件,你也应该更新补丁。因为这些插件上也存在跨站脚本漏洞,攻击者同样可以实施攻击。

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

历史悠久的3个经典网站安全漏洞介绍

06-16

服务器上网站被挂Iframe木马的解决方法

07-31

Kindeditor遍历目录0DAY问题

08-13

Kindeditor特定情况可能会导致全盘浏览的漏洞

08-13

Nessus扫描漏洞使用教程

09-11

PHP邮件注入实战演练

09-17

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论