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);