翻译:WisFree
预估稿费:140RMB(不服你也来投稿啊!)
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
概述
近日,一位安全研究专家公开了一个存在于开源PHP代码库(用于发送电子邮件的热门PHP代码库)中的严重漏洞,这个远程代码执行漏洞或将允许远程攻击者入侵Web应用程序并在Web服务器中执行任意代码。
PHPMailer中的远程代码执行(RCE)漏洞
该漏洞(CVE-2016-10033)是一个名叫Dawid Golunski的波兰安全专家发现的,这个漏洞存在于PHPMailer中,而目前全世界有超过九百万的用户正在使用这个热门的开源PHP代码库。根据PHPMailer项目组透露的信息,这个漏洞已经在PHPMailer v5.2.18版本中得到修复。
当然了,作为一名黑客,Golunski肯定不会轻易收手,于是他便开始尝试绕过新版本PHPMailer中的修复补丁,但是在他尝试的过程中又发现了一个新的漏洞(CVE-2016-10045)。需要注意的是,这个漏洞甚至比之前那个漏洞(CVE-2016-10033)更加严重。漏洞CVE-2016-10045不仅将会影响数百万的网站,而且还会使很多目前热门的开源Web应用和Web框架处于遭受远程代码执行攻击的风险之中,例如WordPress、Drupal、1CRM、SugarCRM、Yii和Joomla等。
PHPMailer的开发人员最终在其v5.2.20版本中彻底修复了这个漏洞,在此之前所有版本的PHPMailer都将受到这个严重漏洞的影响,所以我们强烈建议各位网站管理员和开发者们立刻更新自己所使用的PHPMailer版本。
除了这个漏洞之外,Golunski还报告了一个与该漏洞十分类似的漏洞,这个漏洞存在于另外两个PHP邮件代码库之中,即SwiftMailer和ZendMail,这个漏洞同样允许攻击者对目标Web应用进行远程代码执行攻击。
SwiftMailer中的远程代码执行(RCE)漏洞
SwiftMailer同样是一个当下十分热门的开源PHP代码库,很多开源项目都在使用它,包括很多热门的PHP开源框架,像Yii2、Laravel和Symfony都会使用SwiftMailer来发送电子邮件(通过SMTP实现邮件发送)。
与PHPMailer中的漏洞利用方法一样,攻击者可以通过同样的技术手段利用SwiftMailer中的这个漏洞(CVE-2016-10074)。具体来说,攻击者可以针对使用了SwiftMailer类的网站组件来发动攻击,这些Web组件包括联系表单、注册表单和密码重制邮件等等。
利用这个漏洞,攻击者可以在目标Web服务器中远程执行任意代码,而这将导致攻击者可以进一步获取到托管目标Web应用的网络服务器访问权限。
这个存在于SwiftMailer中的漏洞将会对所有版本的SwiftMailer产生影响,包括其刚刚发布的5.4.5-DEV版本在内。Golunski已经将关于该漏洞的详细信息提交给了SwiftMailer开发团队,相关的技术人员目前正在抓紧时间修复这个漏洞,我们相信他们很快便会发布最新的修复版本。
SwiftMailer团队在该项目的GitHub主页上写到:“旧版本SwiftMailer的邮件传输组件(Swift_Transport_MailTransport)中存在严重的安全漏洞,如果“From”、“ReturnPath”或“Sender” header来自于不受信任的源,那么攻击者就可以利用这些header来传递任意shell参数,并实现远程代码执行。”
ZendMail中的远程代码执行(RCE)漏洞
ZendMail是当前热门的PHP编程框架Zend Framework中的一个功能组件,目前大约有9500多万个Web站点正在使用这个框架。
与攻击者利用PHPMailer和SwiftMailer中的漏洞方法一样,攻击者同样利用的是ZendMail中的这个漏洞(CVE-2016-10034)来攻击那些使用了ZendMail组件的网站,这些Web组件包括联系表单、注册表单和密码重制邮件等等。
利用包含该漏洞的ZendMail组件,攻击者可以在目标Web服务器中实现远程代码执行,并远程入侵目标Web应用程序,
安全研究专家已经将该漏洞上报给了ZendMail开发小组,ZendMail的开发者也已经修复了该漏洞,并且发布了新版本的ZendMail。
ZendMail开发小组在其发表的官方博客中写到:“在使用zend-mail组件(ZendMailTransportSendmail transport)来发送电子邮件的过程中,攻击者可以在邮件组件中注入任意参数。攻击者可以在邮件地址中添加一个额外的引号字符来发动攻击,如果Web应用没有对参数进行安全审查的话,这个引号字符将会被当作一个额外的命令参数来解析,并触发安全漏洞。”
演示视频
Golunski发布了一个PoC视频,并在视频中演示了这三种攻击的完整实现过程。
漏洞利用
Golunski还发布了一个“三合一”的漏洞利用程序(PwnScriptum),感兴趣的同学可以利用这个exploit来复现一下PHPMailer、SwiftMailer和ZendMail中的这个远程代码执行漏洞。
这名安全研究专家还表示,他将会发布一份安全白皮书,并在报告中详细描述之前未披露的针对这三个漏洞的漏洞利用技术。