Lucene search
K

Lepton CMS 2.2.0 / 2.2.1 - PHP Code Injection

🗓️ 16 Aug 2016 00:00:00Reported by hyp3rlinxType 
zdt
 zdt
🔗 0day.today👁 24 Views

Lepton CMS 2.2.0 / 2.2.1 PHP Code Injection allows remote command execution during setu

Code
[+] Credits: John Page (HYP3RLINX) 
 
 
Vendor:
==================
www.lepton-cms.org
 
 
 
Product:
=================================
Lepton CMS 2.2.0 / 2.2.1 (update)
 
LEPTON is an easy-to-use but full customizable Content Management System
(CMS).
 
 
 
 
Vulnerability Type:
===================
PHP Code Injection
 
 
 
CVE Reference:
==============
N/A
 
 
 
Vulnerability Details:
=====================
 
No input validation check is done on the "Database User" input field when
entering Lepton CMS setup information using the Install Wizard.
Therefore, a malicious user can input whatever they want in "config.php",
this can allow for PHP Remote Command Execution on the Host system.
 
e.g.
 
In the database username field, single quote to close "DB_USERNAME" value
then open our own PHP tags.
 
');?><?php exec(`calc.exe`);?>
 
Now in "config.php" the Database username becomes ===>
define('DB_USERNAME', '');?><?php exec(`calc.exe`);?>');
 
A security check attempt is made by Lepton to disallow making multiple HTTP
requests for "config.php". On line 3 of "config.php" file we find.
 
///////////////////////////////////////////////////////////////////////////////////////////////////////
 
if(defined('LEPTON_PATH')) { die('By security reasons it is not permitted
to load \'config.php\' twice!!
Forbidden call from \''.$_SERVER['SCRIPT_NAME'].'\'!'); }
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////
 
However, the security check is placed on line 3 way before "LEPTON_PATH"
has been defined allowing complete bypass of that access control check.
Now we can inject our own PHP code into the config allowing Remote Command
Execution or Local/Remote File Includes etc...
 
Next, make HTTP GET request to "http://victim-server/upload/install/save.php"
again and code execution will be achieved or request "config.php"
directly as the security check made on line 3 of "config.php" to prevent
multiple HTTP requests to "config.php" does NOT work anyhow.
 
In situations where an installation script is provided as part of a some
default image often available as a convenience by hosting providers, this
can
be used to gain code execution on the target system and bypass whatever
security access controls/restrictions etc.
 
References:
http://www.lepton-cms.org/posts/important-lepton-2.2.2-93.php
 
 
Exploit code(s):
===============
 
1) At step 4 of Leptons Install Wizard, enter ');?><?php
exec(`calc.exe`);?> for Database User name, then fill in rest of fields
 
2) Click go to step 5 and fill in required fields, then click "Install
LEPTON"
 
3) Make HTTP GET request to:
 
 http://localhost/LEPTON_stable_2.2.0/upload/install/save.php
 
  OR
 
 http://localhost/LEPTON_stable_2.2.0/upload/config.php
 
 
BOOM pop calc.exe...
 
 
 
Disclosure Timeline:
===========================================================
Attempted Vendor Notification: June 11, 2016 (No replies)
Vendor Notification on July 12, 2016 ( thanks Henri Salo )
Vendor Acknowledgement: July 13, 2016
Vendor fixes: July 14, 2016
Vendor release version 2.2.2 : August 12, 2016
August 15, 2016  : Public Disclosure

#  0day.today [2018-02-06]  #

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