Hallo!
Gestern hat jemand meine Homepage gehackt, will mir aber nicht sagen, wodran das gelegen hat. Da mir das wichtig ist *gg*, poste ich mal hier den groben Aufbau, wisst ihr, wie man sich da reinhacken kann? Register Globals ist off.
function login($area)
{
global $loginon, $boardon, $boardusercolumn, $boardpwdcolumn, $boardtableteam, $praefix, $tableteam, $tablegroups, $boardpraefix;
if($loginon)
{
$Username = $_SESSION['Username'];
$Passwort = $_SESSION['Passwort'];
$results = sqlquery("SELECT wysiwyg, email, ${praefix}${tablegroups}.*, ${praefix}${tableteam}.ID as memberid from ${praefix}${tableteam} LEFT JOIN ${praefix}${tablegroups} ON ${praefix}${tableteam}.groupid = ${praefix}${tablegroups}.ID WHERE ${praefix}${tablegroups}.${area} != 0 AND username = '$Username' AND password = '$Passwort' AND ${praefix}${tablegroups}.login = 1");
if(mysql_num_rows($results) == 1)
{
$areas = array();
$columns = sqlquery("SHOW COLUMNS FROM ${praefix}${tablegroups}");
while($row = mysql_fetch_assoc($columns))
$areas[] = $row['Field'];
if($row = mysql_fetch_array($results))
{
$_SESSION['email'] = $row['email'];
$_SESSION['memberid'] = $row['memberid'];
$_SESSION['userid'] = $row['memberid'];
$_SESSION['wysiwyg'] = $row['wysiwyg'];
for($i = 2; $i < sizeof($areas); $i++)
{
$_SESSION[$areas[$i]] = $row[$areas[$i]];
}
}
sqlquery("UPDATE ${praefix}${tableteam} SET lastlogin = NOW() WHERE ID = ".$_SESSION['userid']);
include($folder_templates."loginmenu.php");
return 1;
} else {
echo "<h1>Achtung!</h1><p>Dieser Bereich ist für Sie gesperrt.</p>";
return 0;
}
} else {
echo "<h1>Achtung!</h1><p>Dieser Bereich ist für Sie gesperrt.</p>";
return 0;
}
}
Die Username und Passwortdaten wurden vorher aus einem POST-Formular in die SESSION eingelesen, wobei das Passwort schon mit md5 verschluesselt ist.
Der Parameter der login funktion gibt einen bestimmten bereich an, zb. articles. Nun werden alle Rechte aus der Tabelle tablegroups ausgelesen und ist das Recht dort vorhanden, wird 1 zurueckgegeben.
mfg,
Bastian Schnitzler