shell bypass 403
<?php /** * @package akeebabackup * @copyright Copyright 2006-2025 Nicholas K. Dionysopoulos / Akeeba Ltd * @license GNU General Public License version 3, or later */ namespace Akeeba\Component\AkeebaBackup\Administrator\Router; defined('_JEXEC') or die; use Joomla\CMS\Application\CMSApplicationInterface; use Joomla\CMS\Component\Router\RouterFactoryInterface; use Joomla\CMS\Component\Router\RouterInterface; use Joomla\CMS\Menu\AbstractMenu; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use RuntimeException; class RouterFactory implements RouterFactoryInterface { /** * THe MVC factory object * * @var MVCFactoryInterface * @since 5.0.0 */ private $factory; /** * The extension's namespace * * @var string * @since 5.0.0 */ private $namespace; public function __construct(string $namespace, MVCFactoryInterface $factory) { $this->namespace = $namespace; $this->factory = $factory; } /** @inheritdoc */ public function createRouter(CMSApplicationInterface $application, AbstractMenu $menu): RouterInterface { $className = trim($this->namespace, '\\') . '\\' . ucfirst($application->getName()) . '\\Service\\Router'; if (!class_exists($className)) { throw new RuntimeException('No router available for Akeeba Backup.'); } return new $className($application, $menu, $this->factory); } }