18-07-2013, 02:55
iprice calculator (com_ipricecalc) er et plugin til Joomla udviklet af iprice-web.ru. I de nyere versioner bliver GET parametret filter_order ikke escaped. Jeg har desvaerre ikke kunne opstoeve den gamle source, de tidligere havde, den kunne jeg ellers godt bruge.
Igen, ikke det mest udbredte plugin, men jeg havde et target, som havde det installeret.
Den saarbare kode ser saaledes ud
controllers/category.php
tables/category.php
Igen, ikke det mest udbredte plugin, men jeg havde et target, som havde det installeret.
Kode:
GET /en/?filter_order=[payload] HTTP/1.1
Host: demo.iprice-web.ru
Den saarbare kode ser saaledes ud
controllers/category.php
Kode:
$table =& JTable::getInstance('Iprice_category', 'JTable');
$filter_order = $mainframe->getUserStateFromRequest( $context.'filter_order', 'filter_order', 'ipc.ordering', 'cmd' );
$filter_order_Dir = $mainframe->getUserStateFromRequest( $context.'filter_order_Dir', 'filter_order_Dir', '', 'word' );
[...]
$table->SetQuery($filter_state,$filter_secid, $search, $filter_order, $filter_order_Dir);
tables/category.php
Kode:
function SetQuery($filter_state = "", $filter_secid = "",$search = "",$filter_order = "", $filter_order_Dir = "", $whe = "") {
[...]
if ($filter_order == 'ipc.ordering' || $filter_order == ''){
$this->_orderby = ' ORDER BY ips.ordering '.' '. $filter_order_Dir .', ipc.ordering'.' '. $filter_order_Dir;
} else {
$this->_orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir ;
}
}