shell bypass 403

Cubjrnet7 Shell


name : view.pdf.php
<?php
/**
* @package RSForm! Pro
* @copyright (C) 2007-2019 www.rsjoomla.com
* @license GPL, http://www.gnu.org/copyleft/gpl.html
*/

defined('_JEXEC') or die;

use Joomla\CMS\MVC\View\HtmlView;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;
use Joomla\CMS\HTML\HTMLHelper;

class RsformViewDirectory extends HtmlView
{
	public function display( $tpl = null )
    {
		$this->app 			= Factory::getApplication();
		$this->params 		= $this->app->getParams('com_rsform');
		$this->template 	= $this->get('template');
		$this->directory	= $this->get('directory');
		
		if (!$this->directory->enablepdf)
		{
			throw new Exception(Text::_('JERROR_ALERTNOAUTHOR'), 500);
		}

		parent::display($tpl);

        // Build the PDF Document string from the document buffer
        $contents = ob_get_contents();
        ob_end_clean();

        $filename = $this->directory->filename;

        // Build root without Joomla! folder
        if ($folder = Uri::root(true))
        {
            $site_path = substr(str_replace(DIRECTORY_SEPARATOR, '/', JPATH_SITE), 0, -strlen($folder));
        }
        else
        {
            $site_path = str_replace(DIRECTORY_SEPARATOR, '/', JPATH_SITE);
        }

        // Add own CSS
        if ($css_path = realpath($site_path.'/' . HTMLHelper::_('stylesheet', 'com_rsform/directory.css', array('pathOnly' => true, 'relative' => true))))
        {
            $contents = '<link rel="stylesheet" href="' . $this->escape($css_path) . '" type="text/css"/>' . $contents;
        }

        // Allow plugins to use their own PDF library
        $this->app->triggerEvent('onRsformPdfView', array($contents, $filename));

        /*
         * Setup external configuration options
         */
        define('K_TCPDF_EXTERNAL_CONFIG', true);
        define("K_PATH_MAIN", JPATH_ADMINISTRATOR . '/components/com_rsform/helpers/tcpdf');
        define("K_PATH_URL", JPATH_BASE);
        define("K_PATH_FONTS", K_PATH_MAIN.'/fonts/');
        define("K_PATH_CACHE", K_PATH_MAIN."/cache");
        define("K_PATH_URL_CACHE", K_PATH_URL."/cache");
        define("K_PATH_IMAGES", K_PATH_MAIN."/images");
        define("K_BLANK_IMAGE", K_PATH_IMAGES."/_blank.png");
        define("K_CELL_HEIGHT_RATIO", 1.25);
        define("K_TITLE_MAGNIFICATION", 1.3);
        define("K_SMALL_RATIO", 2/3);
        define("HEAD_MAGNIFICATION", 1.1);

        /*
         * Create the pdf document
         */

		if (!class_exists('TCPDF'))
		{
			require_once JPATH_ADMINISTRATOR . '/components/com_rsform/helpers/tcpdf/tcpdf.php';
		}

        $pdf = new TCPDF();
        $pdf->SetMargins(15, 27, 15);
        $pdf->SetAutoPageBreak(true, 25);
        $pdf->SetHeaderMargin(5);
        $pdf->SetFooterMargin(10);
        $pdf->setImageScale(4);

        $document = Factory::getDocument();

        // Set PDF Metadata
        $pdf->SetCreator($document->getGenerator());
        $pdf->SetTitle($document->getTitle());
        $pdf->SetSubject($document->getDescription());
        $pdf->SetKeywords($document->getMetaData('keywords'));

        // Set PDF Header data
        $pdf->setHeaderData('', 0, $document->getTitle(), null);

        // Set RTL
        $lang = Factory::getLanguage();
        $pdf->setRTL($lang->isRTL());

        // Set Font
        $font = 'freesans';
        $pdf->setHeaderFont(array($font, '', 10));
        $pdf->setFooterFont(array($font, '', 8));

        // Initialize PDF Document
        if (is_callable(array($pdf, 'AliasNbPages'))) {
            $pdf->AliasNbPages();
        }
        $pdf->AddPage();

        $pdf->WriteHTML($contents, true);
        $data = $pdf->Output('', 'S');

        // Build the PDF Document string from the document buffer
        header('Content-Type: application/pdf; charset=utf-8');
        header('Content-disposition: attachment; filename="'.$filename.'"', true);

        echo $data;

        $this->app->close();
	}
}

© 2025 Cubjrnet7