检测到您启用了Adblock等屏蔽广告扩展,导致正常的内容图片无法显示,为了不影响阅读体验,建议您将www.xiaoz.me加入白名单。

WordPress曝存储型XSS漏洞,影响4.2及以下版本

就在前几天,阿里云盾检测的时候,提示网站存在XSS漏洞,当时并没有太在意,后来在另外的博客再次看到文章证实了这个问题,而查看WordPress的更新记录也可得知的确存在XSS漏洞,建议广大站长朋友们升级到最新版,以下为详细内容。

wordpress-img

WordPress官方在4月21日发布了新的版本4.1.2,其中提到修复了一个严重的存储型XSS漏洞。不久之后便有人给出了漏洞的细节。而安全研究团队Klikki Oy发现在,新版本(<=4.2)的Wordpress中仍然可以利用该漏洞。

XSS漏洞一

这次的XSS漏洞出现在wordpress的留言处,不过问题是由mysql的一个特性引起的。在mysql的utf8字符集中,一个字符由1~3个字节组成,对于大于3个字节的字符,mysql使用了utf8mb4的形式来存储。如果我们将一个utf8mb4字符插入到utf8编码的列中,那么在mysql的非strict mode下,他的做法是将后面的内容截断。

漏洞详情:

利用这一特点,作者发现了wordpress的这个xss漏洞。WordPress默认是utf8编码并且没有开启strict mode,如果我们加入一条这样的留言:

1
<abbr title='We

这会导致wordpress的页面布局混乱,如果再插入一条这样的留言,造成xss漏洞。

1
2
cedric' onmouseover='alert(1)' 
style='position:fixed;top:0;left:0;width:100%;height:100%'

页面将显示为这样:

wp_xss

作者给出了一个利用的poc:

1
2
sometext
<blockquote cite='x onmouseover=alert(1)

poc

受影响的版本:WordPress4.1.1及其之前版本均受影响,据称4.1.2版本已经修复了该漏洞。

XSS漏洞二

就在不久之前,安全研究团队Klikki Oy发现在新版本的wordpress中仍然可以利用该漏洞,漏洞形成的原理是一样的,利用截断来造成页面布局混乱,只不过这次Klikki Oy利用了mysql的另外一个特点。

在wordpress wp_comments表中存储留言的列为comment_content,他的类型为text。Text最大可以存储64kb的数据,如果用户输入了大于64kb的数据,mysql的做法依然是将后面的内容截断,由于wordpress并没有限制留言内容的长度,所以当我们提交大于64kb的留言内容时,依然可以造成页面布局的混乱,形成XSS漏洞。

下面是Klikki Oy团队给出的POC:

1
2
3
<a title='x onmouseover=alert(unescape(/hello%20world/.source))
style=position:absolute;left:0;top:0;width:5000px;height:5000px
 AAAAAAAAAAAA [64 kb] ...'></a>

受影响的版本:WordPress 4.2及以下版本均受影响。

PS:其实小z对安全方面并不是很了解,此次漏洞主要是针对留言而造成,建议各位站长朋友们将WordPress升级到最新版,或者参考怎样有效的阻止WordPress垃圾评论一文来有效的阻止非中文评论。
原文来自:WordPress曝存储型XSS漏洞,影响4.2及以下版本

3 Comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注