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 smile.gif.
Zadanie ma na celu znalezienia metody nie do złamania 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


--------------------
Kloc = Kolor
Obama !== Murzyn
Obama === Kloc


Jak Ci pomogłem to daj Pomógł, tu nie chodzi o te Pomógł, bo to do niczego nie potrzebne, ale daj! :D
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ę 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Ł biggrin.gif


--------------------
Kloc = Kolor
Obama !== Murzyn
Obama === Kloc


Jak Ci pomogłem to daj Pomógł, tu nie chodzi o te Pomógł, bo to do niczego nie potrzebne, ale daj! :D
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ś 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Ł 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 ph34r.gif ?


--------------------
Kloc = Kolor
Obama !== Murzyn
Obama === Kloc


Jak Ci pomogłem to daj Pomógł, tu nie chodzi o te Pomógł, bo to do niczego nie potrzebne, ale daj! :D
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
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Ł 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 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 wink.gif


--------------------
Kloc = Kolor
Obama !== Murzyn
Obama === Kloc


Jak Ci pomogłem to daj Pomógł, tu nie chodzi o te Pomógł, bo to do niczego nie potrzebne, ale daj! :D
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
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


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 ph34r.gif mysql_real_escape już jest ok.
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 Aktualny czas: 20.08.2025 - 07:42