<<< Date Index >>>     <<< Thread Index >>>

POWER PHLOGGER v.2.2.5 (username) SQL Injection



POWER PHLOGGER v.2.2.5 (username) SQL Injection

Author: Attila Gerendi (Darkz)
Date: December 20, 2005
Package: POWER PHLOGGER (http://www.phpee.com/)
Versions Affected: v.2.2.5 (Other versions may also be affected)
Severity: SQL Injection

Description:

Input passed to the "username" parameter in "login.php" isn't properly 
sanitised before being used in
a SQL query. This can be exploited to manipulate SQL queries by injecting 
arbitrary SQL code and
bypass login sequence.

This SQL injection is "blind" so the user can not produce variations in the 
server input however using
BENCHMARK it still can be used to retrieve sensitive data from the database 
and/or heavily load the server
and produce DDOS attack.

The vulnerable code piece is in "/include/get_userdata.php"

/* assign the user's values */
$sql = "SELECT * FROM ".PPHL_TBL_USERS." WHERE id='$id' OR username='$id'";
$res = mysql_query($sql);

the vulnerable parameter at this point is $id and it is set trough session 
variable $username from login.php
without any sanitation.

Status:
The product web page say: "Active development of PowerPhlogger has been stopped 
as of August 2006.
The announced successor Phlogger3 will not be released. Also, I am not able to 
provide you with support for
any previous version.", so any user using this version should correct the bug 
herself.

Solution:

modify
/* assign the user's values */
$sql = "SELECT * FROM ".PPHL_TBL_USERS." WHERE id='$id' OR username='$id'";
$res = mysql_query($sql);

to

/* assign the user's values */
$id = mysql_escape_string($id);
$sql = "SELECT * FROM ".PPHL_TBL_USERS." WHERE id='$id' OR username='$id'";
$res = mysql_query($sql);