shell bypass 403

Cubjrnet7 Shell


name : j2xml.php
<?php
/**
 * @version		3.3.11 cli/j2xml.php
 * @package		J2XML.CLI
 * @subpackage	cli
 * @since		2.5
 *
 * @author		Helios Ciancio <[email protected]>
 * @link		http://www.eshiol.it
 * @copyright	Copyright (C) 2010-2016 Helios Ciancio. All Rights Reserved
 * @license		http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL v3
 * J2XML is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 */

/**
 * This is a J2XML script which should be called from the command-line, not the
 * web. For example something like:
 * /usr/bin/php /path/to/site/cli/j2xml.php -f j2xml_file.xml
 */

// Make sure we're being called from the command line, not a web interface
if (array_key_exists('REQUEST_METHOD', $_SERVER)) die();

define('DS', DIRECTORY_SEPARATOR);

// Initialize Joomla framework
const _JEXEC = 1;
//define('_JEXEC', 1);

// Configure error reporting to maximum for CLI output.
error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', 1);

// Load system defines
if (file_exists(dirname(dirname(__FILE__)).'/defines.php'))
{
	require_once dirname(dirname(__FILE__)).'/defines.php';
}

if (!defined('_JDEFINES'))
{
	define('JPATH_BASE', dirname(dirname(__FILE__)));
	require_once JPATH_BASE.'/includes/defines.php';
}

// Get the framework.
if (file_exists(JPATH_LIBRARIES.'/import.legacy.php'))
{
	require_once JPATH_LIBRARIES.'/import.legacy.php';
}
else
{
	require_once JPATH_LIBRARIES.'/import.php';
	// Import necessary classes not handled by the autoloaders
	jimport('joomla.application.component.helper');
	// Force library to be in JError legacy mode
	JError::$legacy = true;
}

// Bootstrap the CMS libraries.
require_once JPATH_LIBRARIES.'/cms.php';

// Import the configuration.
require_once JPATH_CONFIGURATION.'/configuration.php';

// System configuration.
$config = new JConfig;

// Load Library language
$lang = JFactory::getLanguage();

// Try the j2xmlimporter file in the current language (without allowing the loading of the file in the default language)
$lang->load('com_j2xml', JPATH_ADMINISTRATOR, null, false, false)
	// Fallback to the j2xmlimporter file in the default language
	|| $lang->load('com_j2xml', JPATH_ADMINISTRATOR, null, true);

/**
 * @package  Joomla.CLI
 * @since    2.5
 */
class J2XMLCli extends JApplicationCli
{
	private static $codes = array('message'=>'i','notice'=>'!','error'=>'x');

	/**
	 * Entry point for the script
	 *
	 * @return  void
	 *
	 * @since   2.5.1
	 */
	public function doExecute()
	{
		// Merge the default translation with the current translation
		$lang = JFactory::getLanguage();
		$lang->load('lib_j2xml', JPATH_SITE, null, false, false)
			|| $lang->load('lib_j2xml', JPATH_ADMINISTRATOR, null, false, false)
			// Fallback to the lib_j2xml file in the default language
			|| $lang->load('lib_j2xml', JPATH_SITE, null, true)
			|| $lang->load('lib_j2xml', JPATH_ADMINISTRATOR, null, true);
		
		$filename = $this->input->get('f',null,'');
		
		if (!$filename)
		{
			echo "Usage /usr/bin/php /path/to/site/cli/j2xml.php -f j2xml_file.xml";
			exit(1);
		}

		if (!file_exists($filename))
		{
			echo "File {$filename} not found";
			exit(1);
		}
		
		JLog::addLogger(array('text_file' => 'j2xml.php', 'extension' => 'com_j2xml'), JLog::ALL, array('lib_j2xml','cli_j2xml'));
		JLog::addLogger(array('logger' => 'echo', 'extension' => 'com_j2xml'), JLOG::ALL & ~JLOG::DEBUG, array('lib_j2xml','cli_j2xml'));
		
		if (!($data = implode(gzfile($filename))))
			$data = file_get_contents($filename);
		
		libxml_use_internal_errors(true);
		$xml = simplexml_load_string($data);
		if (!$xml)
		{
			$errors = libxml_get_errors();
			foreach ($errors as $error) {
				$msg = $error->code.' - '.$error->message.' at line '.$error->line;
				switch ($error->level) {
					default:
					case LIBXML_ERR_WARNING:
						$this->out(sprintf('%d - %s at line %d', 
							$error->message, $error->line, 
							'message')
						);
						break;
					case LIBXML_ERR_ERROR:
						$this->out(sprintf('%d - %s at line %d', 
							$error->message, $error->line, 
							'notice')
						);
						break;
					case LIBXML_ERR_FATAL:
						$this->out(sprintf('%d - %s at line %d', 
							$error->message, $error->line, 
							'error')
						);
						break;
				}
			}
			libxml_clear_errors();
			exit(0);
		}
		
		if (!$xml)
		{
			$this->out(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
			exit(0);
		}
		
		$dispatcher = JDispatcher::getInstance();
		JPluginHelper::importPlugin('j2xml');
		$results = $dispatcher->trigger('onBeforeImport', array('cli_j2xml', &$xml));
		
		if (!$xml)
			$this->out(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
		elseif (strtoupper($xml->getName()) != 'J2XML')
			$this->out(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
		elseif(!isset($xml['version']))
			$this->out(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_UNKNOWN'),'error');
		else
		{
			jimport('eshiol.j2xml.importer');
				
			$xmlVersion = $xml['version'];
			$version = explode(".", $xmlVersion);
			$xmlVersionNumber = $version[0].substr('0'.$version[1], strlen($version[1])-1).substr('0'.$version[2], strlen($version[2])-1);
			if ($xmlVersionNumber == 120500)
			{
				set_time_limit(120);
				$params = JComponentHelper::getParams('com_j2xml');
				$j2xml = new J2XMLImporter();
				$j2xml->import($xml,$params);
			}
			else
				$this->out(JText::sprintf('LIB_J2XML_MSG_FILE_FORMAT_NOT_SUPPORTED', $xmlVersion),'error');
		}
	}
	
	/**
	 * Enqueue a system message.
	 *
	 * @param   string  $msg   The message to enqueue.
	 * @param   string  $type  The message type. Default is message.
	 *
	 * @return  void
	 *
	 * @since   2.5.1
	 */
	public function enqueueMessage($msg, $type = 'message')
	{
		$this->out(sprintf("%s - %s",self::$codes[$type],$msg));
	}
}

// Instantiate the application object, passing the class name to JCli::getInstance
// and use chaining to execute the application.
$cli = JApplicationCli::getInstance('J2XMLCli');
JFactory::$application = $cli;
$cli->execute();

© 2025 Cubjrnet7