Danke für die Mitteilung der kritischen Sicherheitlücke
Wenn man sowas wie
eingegeben hat, kam es tatdächlich zu einer Injection - durch den JOIN am Ende wurden aber glücklicherweise 2 Zeilen zurückgegeben (eine pro Template) sodass es doch nicht Funktionierte
Hier die gefixte Datei:
Code:
<?php
session_start ();
include ('inc_mysql.php');
if (empty ($_SESSION['username']))
{
$_SESSION['username'] = 'guest';
$_SESSION['pwd_hash'] = sha1('');
}
$res = mysqlquery ('select user.id,rights+0,path from user,templates where username="' . escape($_SESSION['username']) . '" and password="' . $_SESSION['pwd_hash'] . '" and user.template=templates.id');
if (mysql_num_rows ($res) == 1)
{
$_SESSION['userid'] = mysql_result ($res, 0, 0);
$_SESSION['rights'] = (int)mysql_result ($res, 0, 1);
$_SESSION['tplpath'] = mysql_result ($res, 0, 2);
}
else
{
$_SESSION['userid'] = 1;
$_SESSION['username'] = 'guest';
$_SESSION['pwd_hash'] = sha1('');
$_SESSION['rights'] = 0;
$_SESSION['tplpath'] = 'templates/jfclassicred/';
}
?>
Bevor hier wer anfängt zu hacken: Das Update ist natürlich schon online