漏洞分析:WordPress 5.1 CSRF导致RCE
字数 1276 2025-08-29 08:32:09

WordPress 5.1 CSRF导致RCE漏洞分析与防护指南

漏洞概述

WordPress 5.1.1之前版本存在一个高危漏洞链,允许攻击者通过跨站请求伪造(CSRF)攻击最终实现远程代码执行(RCE)。该漏洞影响所有启用评论功能的WordPress站点,且利用过程无需用户交互,只需管理员访问恶意网站即可触发。

影响范围

  • 影响版本:WordPress 5.1.1之前的所有版本
  • 影响条件:默认配置下启用评论功能的WordPress站点
  • 影响程度:攻击者可完全接管目标网站

技术分析

漏洞链组成

  1. 评论表单CSRF漏洞
  2. HTML注入漏洞
  3. 存储型XSS漏洞
  4. 后台代码编辑功能滥用

详细利用过程

第一阶段:评论表单CSRF导致HTML注入

WordPress评论表单存在以下安全问题:

  1. 缺乏CSRF保护:为了兼容trackbacks和pingbacks功能,WordPress未在评论表单实施CSRF防护
  2. 消毒逻辑缺陷
    • 管理员评论使用wp_filter_post_kses()过滤
    • 普通用户评论使用更严格的wp_filter_kses()过滤
    • 差异导致管理员可通过CSRF注入更多HTML标签

关键代码片段:

if ( current_user_can( 'unfiltered_html' ) ) {
    if (! wp_verify_nonce( $_POST['_wp_unfiltered_html_comment'], 'unfiltered-html-comment' )) {
        $_POST['comment'] = wp_filter_post_kses($_POST['comment']);
    }
} else {
    $_POST['comment'] = wp_filter_kses($_POST['comment']);
}

第二阶段:HTML注入到存储型XSS

WordPress处理标签时存在属性注入漏洞:

  1. 攻击者可构造特殊格式的title属性:title='XSS " onmouseover=alert(1) id=" '
  2. WordPress解析后会错误拼接属性,导致XSS:
    <a title="XSS " onmouseover=evilCode() id=" ">
    

第三阶段:通过iframe执行XSS

攻击者可通过以下方式隐蔽触发XSS:

  1. 将恶意评论嵌入隐藏的