<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </HEAD> <BODY> <?php $user = $_POST['user']; $pass = $_POST['pass']; $link = mysqli_connect("serwerxxxxx.home.pl", "xxxxxxx_sqlin", "HasL0o", "xxxxxxx_sqlin"); if (!$link) { } mysqli_query($link, "SET NAMES 'utf8'"); $result = mysqli_query($link, "SELECT * FROM users WHERE (user='$user') AND (pass='$pass')"); //echo '<pre>' . print_r($result) . '</pre>'; $rekord = mysqli_fetch_array($result); if (!$rekord) { mysqli_close($link); } else { if ($rekord['pass'] == $pass) { } else { mysqli_close($link); } } ?> </BODY> </HTML>
CREATE TABLE `users` ( `id` smallint(6) NOT NULL, `user` varchar(128) COLLATE utf8_polish_ci NOT NULL, `pass` varchar(128) COLLATE utf8_polish_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci; ALTER TABLE `users` ADD PRIMARY KEY (`id`); ALTER TABLE `users` MODIFY `id` smallint(6) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; INSERT INTO `users` (`id`, `user`, `pass`) VALUES (1, 'user1', 'pass1'), (2, 'user2', 'pass2');
Mam rzekomo banalnie proste zadanie z którym nie daje sobie rady. Nie jestem w stanie wstrzyknąć kodu SQL przez pole input. Zadanie polega na zalogowaniu się nie znając hasła ani loginu. Jak rozumiem powinienem się zalogować wpisując w oba pola ciąg znaków
1 OR '1' = '1
co powinno dać w efekcie
SELECT * FROM users WHERE (user='1 OR '1' = '1') AND (pass='1 OR '1' = '1')")
Rozumiem że metoda ta polega na wprowadzeniu w przypadku tego zadania kodu pomiędzy apostrofy (zmienna $user i $pass) dodatkowego kodu SQL. Czyli pokaż wszystkich użytkowników gdzie hasło ma wartość 1 lub 1 = 1 co powinno dać true i dać się zalogować niestety walczę z tym bezskutecznie