Achievo <= 1.3.4 SQL Injection

2009-10-14T00:00:00
ID 1337DAY-ID-9897
Type zdt
Reporter Ryan Dewhurst
Modified 2009-10-14T00:00:00

Description

Exploit for unknown platform in category web applications

                                        
                                            ==============================
Achievo <= 1.3.4 SQL Injection
==============================


1. *Vulnerability Information*
 
Class: SQL Injection
Remotely Exploitable: Yes
Locally Exploitable: Yes
CVE Name: CVE-2009-2734
 
 
2. *Software Description*
 
Achievo is a flexible web-based resource management tool for business
environments. Achievo's resource management capabilities will enable
organizations to support their business processes in a simple, but effective
manner [0].
 
 
3. *Vulnerability Description*
 
SQL injection is a code injection technique that exploits a security
vulnerability occurring in the database layer of an application. The
vulnerability is present when user input is either incorrectly filtered for
string literal escape characters embedded in SQL statements or user input
is not strongly typed and thereby unexpectedly executed.
 
For additional information, please look at the references [1] and [2].
 
 
4. *Vulnerable packages*
 
Version <= 1.3.4
 
 
5. *Non-vulnerable packages*
 
Achievo developers informed us that all users should upgrade to the latest
version of Achievo, which fixes this vulnerability. More information to be
found here:
    http://www.achievo.org/

 
 
6. *Technical Description*
 
A SQL injection vulnerability was found in the dispatch.php script, more
specifically in the $user_id variable. The vulnerability can be triggered by
logging into Achievo and browsing to:
 
/dispatch.php?atknodetype=reports.weekreport&atkaction=report&nameswitch=name&userid=%27&functionlevelswitch=all&startdate[day]=6&startdate[month]=7&startdate[year]=2009&enddate[day]=17&enddate[month]=7&enddate[year]=2009&showstatus=all&outputType=0&atkorderby=period
 
Which will generate a syntax error in the database. The following is
the corresponding piece of code:
 
classweekreport.inc:128-134
function get_employee($user_id)
{
    $db = &atkGetDb();
    $sql = "SELECT * FROM person WHERE status='active' AND id='$user_id'";
    $record = $db->getrows($sql);
    return $record[0];
}
 
 
7. *Report Timeline*
 
    - 2009-07-09:
    Vulnerabilities were identified.
 
    - 2009-08-08:
    Vendor contacted.
 
    - 2009-08-12:
    Vendor confirmed vulnerabilities.
 
    - 2009-08-14:
    Vendor sets possible release date of fixed version to Monday 12 Oct.
 
    - 2009-10-12:
    Vendor released fixed version.
 
    - 2009-10-13:
    The advisory BONSAI-2009-0101 is published.
 
 
8. *References*
 
[0] http://www.achievo.org/
[1] http://www.owasp.org/index.php/SQL_injection
[2] http://en.wikipedia.org/wiki/SQL_injection
 


#  0day.today [2018-03-16]  #