Ushahidi 2.0.1 (range param) SQL Injection Vulnerability (post-auth)
Vendor: Ushahidi, Inc.
Product web page: http://www.ushahidi.com
Affected version: 2.0.1 (Tunis)
Summary: The Ushahidi Platform is a platform for information
collection, visualization and interactive mapping.
Desc: Input passed via the 'range' parameter to dashboard.php is
not properly sanitised in application/controllers/admin/dashboard.php
before being used in SQL queries. This can be exploited to manipulate
SQL queries by injecting arbitrary SQL code.
-------------------------------------------------------
\application\controllers\admin\dashboard.php
Lines: 103-112:
-------------------------------------------------------
// Set the date range (how many days in the past from today?)
// default to one year
$range = (isset($_GET['range'])) ? $_GET['range'] : 365;
if(isset($_GET['range']) AND $_GET['range'] == 0)
{
$range = NULL;
}
$this->template->content->range = $range;
-------------------------------------------------------
Tested on: Tested on: Microsoft Windows XP Professional SP3 (EN)
Apache 2.2.14 (Win32)
PHP 5.3.1
MySQL 5.1.41
Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
liquidworm gmail com
Advisory ID: ZSL-2011-5016
Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2011-5016.php
Vendor Advisory: http://dev.ushahidi.com/issues/show/2195
25.05.2011
----
PoC:
- http://192.168.16.100/index.php/admin/dashboard/?range=1[SQLi]