本文整理自网络,侵删。
该漏洞是由芬兰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,
相关阅读 >>
wordpress wp_list_categories(分类的链接列表)的使用方法
php date_default_timezone_set()设置时区操作实例分析
在centos系统上从零开始搭建wordpress博客的全流程记录
主机nginx + docker wordpress mysql搭建的详细步骤
更多相关阅读请进入《wordpress》频道 >>