Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mysql + apostrof = katastrofa!
shpyo
post 9.09.2004, 17:51:26
Post #1





Grupa: Zarejestrowani
Postów: 574
Pomógł: 2
Dołączył: 13.04.2004
Skąd: Lublin

Ostrzeżenie: (0%)
-----


witam,
czy moze mi ktos wytlumaczyc dlaczego jezeli ktos mi wpisal w formularzu do logowania login insteniejacego uzytkownika + apostrof ' i hash #, haslo byle jakie i zostal zalogowany do systemu !?

  1. <?
  2. $zalogowany = &#092;"SELECT * FROM adepci WHERE nick='$_POST[nick]' AND haslo='md5($_POST[passwd])' LIMIT 1\";
  3. ?>


mialem cos takiego jak wyzej, zmienna $_POST[nick] zaopatrzylem w addslashes i juz ten trik nie dziala.

Powie mi ktos dlaczego sie tak stalo? IMHO to moje zapytanie powinno z apostrofem zworcic false... lekko sie zalamalem sad.gif

Ten post edytował shpyo 9.09.2004, 17:52:06


--------------------
Go to the top of the page
+Quote Post
anas
post 9.09.2004, 18:00:44
Post #2





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

Ostrzeżenie: (0%)
-----


Hej.

Spróbuj tak:

  1. <?
  2. $zalogowany = 'SELECT * FROM adepci WHERE nick='.$_POST['nick'].' AND haslo=md5('.$_POST['passwd'].') LIMIT 0,1';
  3. ?>


pozdrawiam

anas
Go to the top of the page
+Quote Post
rogrog
post 9.09.2004, 18:08:47
Post #3





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


# - hash - oznacza w SQLu komentarz
' - apostrof - wiadomo

spójrz na to od strony SQL
jeżeli ktoś wpisze jako login na przykład:

Kod
' OR 1=1 #


to zapytanie wygląda tak:

  1. SELECT * FROM adepci WHERE nick='' OR 1=1 #' AND haslo='tu wpisane haslo' LIMIT 1


jako że wszystko za znakiem komentarza # jest ignorowane to realnie wykonywane jest następujące zapytanie:

  1. SELECT * FROM adepci WHERE nick='' OR 1=1


zapytanie tego typu zwróci wszystkie rekordy, jakie masz w bazie, a więc użytkownik zostanie zalogowany

--------------------

Polecam poszukanie o "mysql_injections"
Polecam też funkcję mysql_escape_string" title="Zobacz w manualu PHP" target="_manual która zabezpieczy stronę przed tego typu atakami


--------------------
Go to the top of the page
+Quote Post
shpyo
post 9.09.2004, 18:16:11
Post #4





Grupa: Zarejestrowani
Postów: 574
Pomógł: 2
Dołączył: 13.04.2004
Skąd: Lublin

Ostrzeżenie: (0%)
-----


rogrog, dzieki bardzo za wytlumaczenie biggrin.gif teraz bede bral pod uwage takie szczegoliki biggrin.gif


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 11:34