0×01 概述
1.1 前言
2019 年 3 月 13 号,RIPS 又放了一个 WordPress 的 CSRF,与此同时 WordPress 官方也提交相应的 Commit,算是一个比较新的洞。问题出在文章的评论上,其实是有防 CSRF 相应的 wpnonce,熟悉 wp 的人肯定不会陌生 wpnonce,这是 wp 的防御机制,动作和postid构成的token,用来验证reference,而且 wordpress 对标签的过滤机制比较严格的。白名单机制,列如 a 标签的名单为:
1.2 背景介绍
1.2.1 漏洞描述 漏洞存在于 5.1.1 之前的 WordPress 版本中,可以使用默认设置进行利用。 根据其 WordPress 官方下载页面,超过 33%的互联网网站正在使用 WordPress。文章评论是博客的核心功能并且默认情况下已启用,该漏洞会影响数百万个网站。 1.2.2 受影响版本 WordPress <= 5.1.11.3 测试环境
Kali 4.19.0 WordPress 5.1.10×02 漏洞实现过程
环境最新是 5.1.1 昨天才官方刚 commit 的修复过程,算是比较新。既然是是 CSRF,表单提交点在于每篇文章的评论处。wp-comments-post.php:25, wp_handle_comment_submission(wp_unslash( $_POST )),进入 comment_handler 函数 做了一些简单的赋值过程:









<a title= ‘ maple ” onmouseover=alert(1) id=” ‘ rel=”anything”>,通过拼接变成<a title = ” maple” onmouseover=alert(1) id=”" rel =”anythingnofollow”>
在后面的过程中属性里面的特殊字符会被转义成实体。涉及到写 js 的可能需要绕一下不能用引号和双引号,可以这样绕一下:


0×03 总结
3.1 利用条件
其实这个洞再利用条件的有一定限定 RIPS 也没有指出来,我在刚做时候,我添加了一个评论,我没有去文章页面看,我去的后台管理界面评论管理处看,发现并没有出现xss的情况,我很诧异不应该是一样吗?而后发现在输出评论前

0X04 修复建议
wp 默认是开启自动更新的,最新版本中已经得到修复,若关闭自动更新的环境,请及时检查更新。 https://wordpress.org/news/2019/03/wordpress-5-1-1-security-and-maintenance-release/ 可手动修复: