Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sql injection - dlaczego?
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


w niezabezpieczonym skrypcie przed SQL Injection pakuje w pole login takie coś

' ; drop table table1;'

zapytanie SQL

  1. <?php
  2. $query = 'SELECT name, surname, login, haslo, poziom FROM users
  3.              WHERE login = '."'". $_POST['login']."'";
  4. ?>


gdy zapodam to wszystko przez przeglądarkę tabela table1 nie zostaje zdropowana, natomiast jeśli wyprintuje to zapytanie a potem wkleje np do phpMyAdmin i zapuszcze to tabelka się dropuje
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Bo mysql_query wykonuje tylko jedno zapytanie. i jezeli oddzielisz je srednikiem to to nic nie da.


--------------------
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Ponieważ do wykonania tego zapytania stosujesz zapewne funkcję mysql_query(), która nie potrafi wykonywać wielu zapytań
Go to the top of the page
+Quote Post
john_doe
post
Post #4





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


ok a czy PDO potrafi ?
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Temat: SQL_Injection_Insertion

Chyba nie ma co komentować.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(erix @ 27.05.2009, 13:32:05 ) *
Temat: SQL_Injection_Insertion

Chyba nie ma co komentować.
Masz rację. Nie ma co komentować tego, że nie czytasz wątku na który odpisujesz tongue.gif
Go to the top of the page
+Quote Post
john_doe
post
Post #7





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


erix, wiem, że jest temacik przypięty o SQL Injection.
Ale pytałem o coś innego. Masa ludzi krytykuje skrypty, że są podatne na "ZASTRZYK" a przy użyciu mysql_query to nie kosi.
I w przypiętym tego nie ma.
Go to the top of the page
+Quote Post
phpion
post
Post #8





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(john_doe @ 27.05.2009, 13:40:42 ) *
przy użyciu mysql_query to nie kosi.

Jesteś w błędzie. Poza tym SQL Injection nie ma na celu dołożenia kolejnego zapytania (jak próbujesz) tylko modyfikacja aktualnego czyli np. z:
  1. SELECT * FROM tabela WHERE login='admin'

tworzone jest:
  1. SELECT * FROM tabela WHERE login='admin' OR 1=1

Rozumiesz teraz zasadę działania?
Go to the top of the page
+Quote Post
john_doe
post
Post #9





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


rozumiem phpion po części, bo Twój przykład zwróci wszystkich userów z db. ale jak atakujący pozna wynik tego zapytania skoro przy logowaniu np. koder da warunek, że "loguj jeśli count(*) z tego zapytania == 1
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




wystarczy ze koles oprocz OR 1=1 dolozy jeszcze limit 1 tongue.gif


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

"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
john_doe
post
Post #11





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


nospor kiedyś mi pomogłeś z $_GET i SQL Injection przy jednym projekcie. moc z Tobą smile.gif
ale zobacz co da temu komuś limit 1 skoro przez to zwróci tylko jeden wiersz? a chciałby wszystkie? no chyba, że akurat na 1szym miejscu będzie konto admina smile.gif

P.S co z PDO i wielokrotnym zapytaniem. Czy działa tak samo jak mysql_query?

Ten post edytował john_doe 27.05.2009, 13:00:31
Go to the top of the page
+Quote Post
nospor
post
Post #12





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




Cytat
no chyba, że akurat na 1szym miejscu będzie konto admina
no wlasnie, oto chodzi. Sek w tym, ze oprocz 1=1 on moze zapodac konkretny rekord, i wowczas zawsze trafi na admina.

Ale sql injection to nie tylko zalogowanie sie. to masa innych rzeczy. w necie masz tego pelno


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

"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
john_doe
post
Post #13





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


nospor mam ogromną prośbę. Spójrz proszę na mój wczorajszy wątek

Temat: czy_takie_sposob_jest_dobry

logowanie na mssql`u.
do tych zapytań dodałem dziś addslashes();

wypowiedz się smile.gif
Go to the top of the page
+Quote Post
Crozin
post
Post #14





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Jeżeli korzystasz z PDO to skorzystaj z PDOwatych bindValue().
Go to the top of the page
+Quote Post
erix
post
Post #15





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Nie ma co komentować tego, że nie czytasz wątku na który odpisujesz

Jest już wątek o tym, to na chorobę 2x? tongue.gif


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 21.08.2025 - 09:53