Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#15

Re: [PHP] Session-Management - Sicherheit

  Alt 19. Jul 2009, 22:31


Danke für die Mitteilung der kritischen Sicherheitlücke

Wenn man sowas wie
Code:
USERNAME" --
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
  Mit Zitat antworten Zitat