神刀安全网

安全预警:WordPress论坛插件bbPress存在存储型XSS漏洞,影响修复版本2.5.9以前所有版本

安全预警:WordPress论坛插件bbPress存在存储型XSS漏洞,影响修复版本2.5.9以前所有版本

近日,WordPress母公司Automattic发布了bbPress 2.5.9版本,在这个官方的WordPress论坛插件的最新版本中,修复了一个威胁程度较高的存储型XSS漏洞,影响范围包括现有的bbPress版本,即版本< 2.5.9的皆会受到影响

根据来自WordPress.org的统计数据,当前已有超过 30万站点使用了该插件。而据悉,该漏洞是一个存储型XSS漏洞,此类漏洞与反射型XSS漏洞,并称为XSS的两大类型漏洞。我们知道,在存储型XSS漏洞中,攻击者可以利用漏洞于Web平台中植入恶意代码,而恶意代码会被存储于后台或数据库中,随后其他用户访问受影响页面时,便会执行攻击者此前植入的恶意代码,从而实现跨站的攻击。

该XSS 漏洞存在于插件的用户提及功能中

在这个案例中,一开始来自Sucuri的安全研究人员称其发现一种方法,攻击者通过用户提及功能(即@用户名,而 bbPress的用户提及功能能够将@用户名替换成另外一个链接,创建了一个嵌套链接的HTML结构。 ),可在论坛文章中存储恶意代码。而这些文章会被存在到数据库中,后面会展示给随后的访问者。如果攻击者有着更加成熟的技术,可通过这种方法从版主或者管理员处窃取cookies,以管理员身份进行操作,实现提权。

技术细节

在 WordPress中,所有文章和回复的内容会通过 WordPress的 wp_kses() 函数进行过滤,而该函数执行着一个白名单机制,允许HTML 标签及其属性通过过滤引擎,如“a“标签以及其中的“href”属性等。以下为过滤的机制,

安全预警:WordPress论坛插件bbPress存在存储型XSS漏洞,影响修复版本2.5.9以前所有版本

接着我们可以看到,其中有个bbp_mention_filter过滤函数,该函数便是对用户提及功能进行过滤,其具体实现代码如下,

安全预警:WordPress论坛插件bbPress存在存储型XSS漏洞,影响修复版本2.5.9以前所有版本

上述代码执行流程如下,

1、首先调用bbp_find_mentions函数,搜索文章内容中存在的用户提及关键符号“@”,通过以下正则来实现,

/[@]+([A-Za-z0-9-_/.@]+)/b/

然后搜索完成后,返回搜索结果。

2、对于每一个搜索到的结果,则检查是否有与它相匹配的用户,以及该用户是否在线。

3、通过上述两个步骤,接下来便会在后台程序中将提及的用户名,替换为一个HTML超链接标签,可链接到用户的个人页面中去。

实际上,它并没有检测提及的用户名是否存在于一个HTML标签属性中。而为了更加直观的说明这个问题,我们假设现在有个用户,其名称为“test”,在某篇文章中回复了一个包含超链接标签的评论,并将其中的“href”属性设置为@test,具体如下,

<a href="@test">link</a>

然后接下来按照流程,会将@用户名替换成 超链接标签,具体如下,

<a href="<a href="http://targetsite/test/profile/" rel="nofollow">test</a>">link</a>

正如你看到的一样,此前回复中的超链接标签的双引号顺序便被打破了,而攻击者正可以利用这个机会插入恶意代码,实现跨站攻击。

漏洞处置时间表

4月12日: Sucuri安全团队向bbPress的管理者报告了该漏洞;

5月2日:bbPress 2.5.9修复版本发布,并已解决该问题;

5月3日: Sucuri安全团队发布漏洞细节。

如有安装此插件的用户,需尽快升级版本,保证站点安全性,降低遭受攻击风险。

*参考来源: softpediasucuri ,FB小编troy编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 安全预警:WordPress论坛插件bbPress存在存储型XSS漏洞,影响修复版本2.5.9以前所有版本

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址