Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Zabezpieczenie mysql
Kloc
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 8
Dołączył: 8.06.2014

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


To zadanie dla prawdziwych hakierów.
W bazie danych mam ukryty klucz, aby do niego się dostać trzeba złamać login i hasło.
Jest to pierwszy poziom trudności- czyli formularz bez filtracji itp. Osoba która dokona odkrycia kluczu jest proszona o podanie go tu.
Jeśli wszystko będzie się zgadzać to dodam jakieś zabezpieczenie i poproszę o to samo (IMG:style_emoticons/default/smile.gif) .
Zadanie ma na celu znalezienia metody nie do złamania (IMG:style_emoticons/default/biggrin.gif)

Zapytanie wygląda tak, a hasło jest w md5:
  1. SELECT `login`,`haslo` FROM `---` WHERE `login` = '".$login."' AND `haslo` = '".$haslo."'


http://www.kloc.ugu.pl/index.php

Ten post edytował Kloc 12.10.2014, 09:20:51
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Klucz to 123456789.
Go to the top of the page
+Quote Post
Kloc
post
Post #3





Grupa: Zarejestrowani
Postów: 115
Pomógł: 8
Dołączył: 8.06.2014

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


Zgadza się (IMG:style_emoticons/default/smile.gif)
Teraz została dodana funkcja filtrująca login i hasło, a wygląda ona tak:
  1. function filtruj($filtracja){
  2. $filtracja = stripslashes($filtracja);
  3. $filtracja = addslashes($filtracja);
  4. $filtracja = str_replace("<", "!", $filtracja);
  5. $filtracja = str_replace(">", "!", $filtracja);
  6. return $filtracja;
  7. }


Login, hasło i klucz zostały zmienione, a SmokAnalog wygrywa POMÓGŁ (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Damonsson
post
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Właśnie pisałem, czy jesteś pewny, że tak wygląda zapytanie, chyba akurat zmieniałeś (IMG:style_emoticons/default/tongue.gif)

POL22033UE
Go to the top of the page
+Quote Post
Kloc
post
Post #5





Grupa: Zarejestrowani
Postów: 115
Pomógł: 8
Dołączył: 8.06.2014

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


Damonsson hakierze wszystkich hakierów wygrywasz POMÓGŁ (IMG:style_emoticons/default/biggrin.gif)
No ale lecimy dalej. Teraz dodałem takie cuś:
  1. preg_match('#^[a-zA-Z0-9]*$#D', $_POST['login']) AND preg_match('#^[a-zA-Z0-9]*$#D', $_POST['haslo'])


Przez formularz nie przejdą żadne znaki po za literami i liczbami.
Hasło, login i klucz są nowe, kto pierwszy rozwali system (IMG:style_emoticons/default/ph34r.gif) ?
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Tak z ciekawości po co to sprawdzasz? Dlaczego np uniemożliwiasz użytkownikowi podanie bardziej zaawansowanego hasła i które i tak powinno być potraktowane jakąś funkcją crypt. Zapytanie preparowane i ograniczany tylko login.
Go to the top of the page
+Quote Post
Damonsson
post
Post #7





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Cytat(Kloc @ 14.10.2014, 12:46:05 ) *
Damonsson hakierze wszystkich hakierów wygrywasz POMÓGŁ (IMG:style_emoticons/default/biggrin.gif)
No ale lecimy dalej. Teraz dodałem takie cuś:
  1. preg_match('#^[a-zA-Z0-9]*$#D', $_POST['login']) AND preg_match('#^[a-zA-Z0-9]*$#D', $_POST['haslo'])


Przez formularz nie przejdą żadne znaki po za literami i liczbami.
Hasło, login i klucz są nowe, kto pierwszy rozwali system (IMG:style_emoticons/default/ph34r.gif) ?

Głowy sobie uciąć nie dam, ale wydaje mi się, że już tutaj nikt nic nie zrobi z poziomu sql injection, więc możesz zakończyć poszukiwania.

Ten post edytował Damonsson 14.10.2014, 13:42:43
Go to the top of the page
+Quote Post
Kloc
post
Post #8





Grupa: Zarejestrowani
Postów: 115
Pomógł: 8
Dołączył: 8.06.2014

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


Też mi się tak zdaje, z powyższych przykładów widać jak MySql jest podatne na ataki co da się jakoś zabezpieczyć.
Jeśli jest się upartym można przy tym zostać, ale lepiej jest przejść na PDO.
Dzięki za pomoc (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Do escapowania danych w mysql_ uzywa sie mysql_real_escape a nie zadne addslashes.

Jesli po tej zamianie, ci sie wlamali, to byloby milo jakby napisali jak.

Rownie to:
$filtracja = stripslashes($filtracja);
powinno zniknac.

I to rowniez:
$filtracja = str_replace("<", "!", $filtracja);
$filtracja = str_replace(">", "!", $filtracja);
ma sie nijak do filtracji danych do bazy danych
Go to the top of the page
+Quote Post
wpaski
post
Post #10





Grupa: Zarejestrowani
Postów: 206
Pomógł: 6
Dołączył: 25.12.2011

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


mogę się dowiedzieć w jaki sposób mimo addslashes udało się uzyskać kod?
Go to the top of the page
+Quote Post
Damonsson
post
Post #11





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Wystarczy pamiętać, żeby po prostu nie używać addslashes (IMG:style_emoticons/default/ph34r.gif) mysql_real_escape już jest ok.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 3.10.2025 - 02:14