02. oktober 2005 - 22:46Der er
18 kommentarer og 2 løsninger
Gevinst til den som kan omgå mit login!
Jeg har lavet et login system på www.waldorfwide.com og vil gerne lige have checket det af - og hvilken løsning er bedre end at slippe alle 'ekspertene' løs? 200 point til den første som skriver det hemmelige svar her. ;)
//logout - vises kun hvis en af login-sessions eksisterer
}elseif(isset($_SESSION["id"]) || isset($_SESSION["nick"]) || isset($_SESSION["pw"])){ echo "Klik her for at <a href=\"?page=login&action=logout\">logge ud!</a>";
function login_check(){ $query = mysql_query("SELECT * FROM users WHERE id = '" . $_SESSION["id"] . "'") or die(mysql_error()); $count = mysql_num_rows($query); //Tæller antaller af resultater while ($row = mysql_fetch_array ($query)) { $check = $row["pw"]; } if ($_SESSION["pw"] !== $check OR !$count OR $count > 1) { session_destroy(); echo "You are not logged in as user. <br>You will be redirected to main page. <META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=http://www.waldorfwide.com\">"; exit; } }
$query = mysql_query("SELECT * FROM users WHERE nick = '" . $nick . "' AND pw = '$postpw'") or die(mysql_error()); //Spørger efter ID
og prøv at indtaste dette som nick i formen (burde virke, hvis jeg har holdt tungen lige i munden): ' union select '\' union select \'id\',\'nick\',\'password\'#','nick','password'#
Nu har jeg prøvet at sætte det der magic quotes=off ved dit eks. med stripslashes, og nu kom jeg videre fra loginformlen - men blev afvist ved admin delen som checker efter om login er gyldigt (se ovenstående). Tror det er fordi den ikke opretter nogen sessions med dit eksempel - som jo er krævet ved hver login_check()
Du kan rette din linie: $query = mysql_query("SELECT * FROM users WHERE nick = '" . $_POST["nick"] . "' AND pw = '$postpw'") or die(mysql_error()); //Spørger efter ID
til:
function customAddslashes($str) { if (!get_magic_quotes_gpc()) { $str = addslashes($str); } return $str; }
$nick = customAddslashes($_POST['nick']); $query = mysql_query("SELECT * FROM users WHERE nick = '" . $nick . "' AND pw = '$postpw'") or die(mysql_error()); //Spørger efter ID
Well jeg fik styr på princippet bag det, men måske ikke det helt praktiske, hvad unions select gør og hvordan den "snyder" systemet.
Men tak for svarene! :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.