shell bypass 403
<?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\Factory;
use Joomla\CMS\Table\Table;
class RsformControllerMappings extends RsformController
{
public function getTables()
{
$app = Factory::getApplication();
$model = $this->getModel('mappings');
$config = $app->input->get('jform', array(), 'array');
try
{
$tables = $model->getTables($config);
echo json_encode(array('tables' => $tables));
}
catch (Exception $e)
{
echo json_encode(array('message' => $e->getMessage()));
}
$app->close();
}
public function getColumns()
{
try
{
$app = Factory::getApplication();
$cid = $app->input->getInt('cid');
$config = $app->input->get('jform', array(), 'array');
$type = $app->input->get('type', 'set');
$row = null;
if ($cid)
{
$row = Table::getInstance('RSForm_Mappings', 'Table');
$row->load($cid);
}
echo RSFormProHelper::mappingsColumns($config, $type, $row);
}
catch (Exception $e)
{
echo $e->getMessage();
}
$app->close();
}
public function save()
{
$app = Factory::getApplication();
$data = $app->input->post->getArray(array(), null, 'raw');
$config = $app->input->get('jform', array(), 'array');
$data = array_merge($data, $config);
unset($data['jform']);
$model = $this->getModel('mappings');
$model->save($data);
Factory::getDocument()->addScriptDeclaration("window.opener.mappingsShow(); window.close();");
}
public function saveOrdering()
{
$db = Factory::getDbo();
$data = Factory::getApplication()->input->post->get('cid', array(), 'array');
foreach ($data as $id => $val)
{
$query = $db->getQuery(true)
->update($db->qn('#__rsform_mappings'))
->set($db->qn('ordering') . '=' . $db->q($val))
->where($db->qn('id') . '=' . $db->q($id));
$db->setQuery($query)
->execute();
}
Factory::getApplication()->close();
}
public function remove()
{
$input = Factory::getApplication()->input;
$model = $this->getModel('mappings');
$formId = $input->getInt('formId');
$model->remove();
$input->set('view', 'forms');
$input->set('layout', 'edit_mappings');
$input->set('tmpl', 'component');
$input->set('formId', $formId);
parent::display();
Factory::getApplication()->close();
}
public function showMappings()
{
$input = Factory::getApplication()->input;
$formId = $input->getInt('formId');
$input->set('view', 'forms');
$input->set('layout', 'edit_mappings');
$input->set('tmpl', 'component');
$input->set('formId', $formId);
parent::display();
Factory::getApplication()->close();
}
}