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

所属分类: 网络安全 / 漏洞分析 阅读数: 131
收藏 0 赞 0 分享

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插件,你也应该更新补丁。因为这些插件上也存在跨站脚本漏洞,攻击者同样可以实施攻击。

更多精彩内容其他人还在看

DEDECMS任意修改文章漏洞(exp)

  这个漏洞不足以得到马儿 但能修改任何文章 也算是一个严重的漏洞!   废话不说   经典对白 看代码!   membersoft_edit.php   01if(empty($dopost)) //如果这里是空也就是直接访问这个文件   02{   03 //读取归档信息  
收藏 0 赞 0 分享

eWebeditor漏洞的修补

  漏洞原理   漏洞的利用原理很简单,请看Upload.asp文件:   任何情况下都不允许上传asp脚本文件   sAllowExt = Replace(UCase(sAllowExt), "ASP", "")   修补方法:用以下语句
收藏 0 赞 0 分享

发掘MaosinCMS网站系统漏洞与测试

  最近的动易CMS漏洞可以说着实火了一把,本文写的CMS虽然没有动易功能强大,但同样存在注入漏洞。这种漏洞用工具是扫不到的,可以说注入已经由显式转为隐式了,必须查看源代码才有可能发现潜在的漏洞。   适合读者:入侵爱好者前置知识:无发掘MaosinCMS网站系统漏
收藏 0 赞 0 分享

关于bo-blog的安全隐患

  bo-blog是一款外观好看,而且当前流行的个人博客系统,在很多下载站你都可以找到这套程序,而且甚至有很多安全界的人都使用着这套php+txt的程序,但是这套程序里有些安全隐患,可能会被人利用去做一些破坏。   首先开门见山,我们说说它的绝对路径暴露问题.......
收藏 0 赞 0 分享

野草weedcmsV5.2.1 任意删除文件漏洞

  member.php   if($action=='edit_member_ok'){ //member.php?action=edit_member_ok   check_request(); //检查来路   if(!check_login()){ //检测是否登录会员
收藏 0 赞 0 分享

EimsCms v5.0 XSS+CSRF获取Shell方法

  影响版本:EimsCms v5.0   官方网站:http://www.eimscms.com/   漏洞类型:跨站XSS   漏洞描述:未对Book.asp邮箱等处进行符号转义,导致XSS跨站执行漏洞。   ------GetShell-----   [1] 在Book.a
收藏 0 赞 0 分享

动易4.03上传漏洞

  动易4.03上传漏洞。2005-1-10 就出来了,一直没有公布。   看黑客防线的攻关第3关用的是动易所有公布出来了。   影响版本: 动易4.03   上面的是动易的上传代码,从上面分析,我们可以看到,它明显存在着上传漏洞。重要的漏洞代   码在于这一句   FileEx
收藏 0 赞 0 分享

利用%5c绕过验证

  说到%5c,你是不是想起了当前流行的那个%5c暴库漏洞,呵呵,本文就是对%5c利用的探索(呵呵,当然有我提出的新东东,或许对你有帮助哦^_^)。   好,我们先追根溯源,找到那个漏洞的老底。看看绿盟2001年的漏洞公告:_bug&do=view&bug_id=
收藏 0 赞 0 分享

DISCUZ X1.5 本地文件包含漏洞

  DISCUZX1.5 本地文件包含,当然是有条件的,就是使用文件作为缓存。   config_global.php   $_config['cache']['type'] = ‘file’;   function cachedata($cachenam
收藏 0 赞 0 分享

PHP在安全方面的另类应用

  1.远程文件   PHP是一门具有丰富特性的语言,它提供了大量函数,使程序员能够方便地实现各种功能,远程文件就是一个很好的例子:   代码      $fp=@Fopen($url,"r") or die ("cannot open $url&q
收藏 0 赞 0 分享
查看更多