[<prev] [next>] [day] [month] [year] [list]
Message-ID: <d3b783f73a22895a6407774902405520.hackers@hackers.ir>
Date: Sun, 10 Sep 2006 13:37:28 +0430
From: "Omid" <omid@...kers.ir>
To: <bugtraq@...urityfocus.com>
Subject: Sql injection in Tikiwiki
Hi,
There are 2 sql injections in Tikiwiki 1.9.4 (and maybe before versions) :
I) There is a call to "get_process()" function in "tiki-g-admin_processes.php"
file, without checking "pid" parameter :
File /tiki-g-admin_processes.php, Line 35 :
:: $info = $processManager->get_process($_REQUEST["pid"]);
Lets take a look at the "get_process()" function :
File /lib/Galaxia/src/ProcessManager/ProcessManager.php, Line 419 :
::  function get_process($pId)
::  {
>>    $query = "select * from ".GALAXIA_TABLE_PREFIX."processes where pId=$pId";
::    $result = $this->query($query);
::    if(!$result->numRows()) return false;
::    $res = $result->fetchRow();
::    return $res;
::  }
II) The "where" parameter in "tiki-g-admin_processes.php" file, is not
checked properly :
File /tiki-g-admin_processes.php, Line 155 :
:: if (isset($_REQUEST['where'])) {
>> 	$where = $_REQUEST['where'];
:: }
File /tiki-g-admin_processes.php, Line 183 :
:: $items = $processManager->list_processes($offset, $maxRecords, $sort_mode, $find, $where);
File /lib/Galaxia/src/ProcessManager/ProcessManager.php, Line 442 :
::    if($where) {
::      if($mid) {
::        $mid.= " and ($where) ";
::      } else {
>>        $mid.= " where ($where) ";
::      }
::    }
>>    $query = "select * from ".GALAXIA_TABLE_PREFIX."processes $mid order by $sort_mode";
::    $query_cant = "select count(*) from ".GALAXIA_TABLE_PREFIX."processes $mid";
::    $result = $this->query($query,$bindvars,$maxRecords,$offset);
The original advisory (in Persian) is located at :
http://www.hackers.ir/advisories/tikiwiki.html
- Omid
Powered by blists - more mailing lists
 
