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]


国外转载回来的。。