Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL/PHP]Prosty Sql injection
Crisu
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 11.08.2006

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


Witam!
Musze przygotowac ref z bezpieczenstwa baz danych

Chciałem przerobić najproszty przyklad sql injection :

  1. <?php
  2.  
  3.  
  4.    mysql_connect('localhost', 'root', 'xxx')
  5.    or die('blad polaczenia z baza');
  6.  
  7.    mysql_select_db('test');
  8.  
  9.    $name = $_POST['name'];
  10.    $pass = $_POST['pass'];
  11.  
  12.    $zap1 ="select id from users WHERE name='$name' and password='$pass'";
  13.  
  14.  
  15.    echo 'zapytanie: '.$zap1;
  16.    $query = mysql_query($zap1);
  17.  
  18.    var_dump($query);
  19.  
  20.    $row = mysql_fetch_array($query);
  21.  
  22.    var_dump($row);
  23.  
  24.  
  25.    echo '<br />id zalogowanego to : '.$row['id'];
  26.  
  27. //    mysql_close();
  28.  
  29. ?>


  1. <body>
  2. <form action="sqli1.php" method="post">
  3. name: <INPUT TYPE="text" NAME="name" /><br>
  4. pass: <INPUT TYPE="text" NAME="pass" /><br>
  5. <input type="submit" name="submit" value="login">
  6.  
  7. </form>
  8.  
  9. </body>
  10. </html>



W bazie sa wpisy (id,name,password)
Cytat:

1 admin nimda
2 user user


Chcialem na poczatek wykonac zapytanie



  1. SELECT id FROM users WHERE name='admin' /* and password=''



czyli w pole name wpisuje admin' /*
Ale i tak nie przechodzi...
Ktos moze cos doradzic bo siedze nad tym banałem cały dzień...

Ten post edytował Crisu 3.03.2009, 21:57:50
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




Cytat
czyli w pole name wpisuje admin' /*

admin' or 1=1 or 1=1 or '
Go to the top of the page
+Quote Post
Crisu
post
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 11.08.2006

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


To zapytanko sie przynajmniej nie wywala...
Ale nie jest to do konca o co mi chodzilo, tzn zawsze zwraca id=1
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




zapytanie zwraca wszystkie rekordy. To ty pobierasz zawsze pierwszy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crisu
post
Post #5





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 11.08.2006

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


fakt
A czemu to moje nie dziala ? Chyba to jest najbardziej podstawowa metoda z komentarzem reszty sqla?
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




do mysql przez mysq_query nie mozna wrzucic komentarza... a przynajmniej mi sie nigdy nie udalo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crisu
post
Post #7





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 11.08.2006

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


troche zgupiałem w tym momencie prawde mówiac...
Z rok temu się w to bawiłem i jestem na 99% pewien ze działało wtedy : )
Dzieki za rade
Go to the top of the page
+Quote Post
bełdzio
post
Post #8





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


z komentarzami nie ma problemu, sek w tym, ze musi on zostac zamkniety tzn SELECT * FROM tabelka /* cos jest nie ok, ale juz SELECT * FROM tabelka /* cos */ jest ok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crisu
post
Post #9





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 11.08.2006

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


trafna uwaga z zamknieciem komentarza - pomogło !

To co powiecie na to
http://albi.vxe.pl/2007/02/26/sql-injection/

Pierwszy link z googli

Cytat :
  1. SELECT * FROM articles WHERE category = 'any' OR 1=1--'


Cytat
Jak widać, na końcu pojawiły się dwa myślniki. Mają one na celu przekazanie do mysql, że reszta zapytania my być zignorowana (-- to znak komentarza w mysql).


U mnie motyw z admin' or 1=1 -- nie przechodzi ...
Go to the top of the page
+Quote Post
bełdzio
post
Post #10





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


Cytat(Crisu @ 3.03.2009, 22:53:35 ) *
  1. SELECT * FROM articles WHERE category = 'any' OR 1=1--'


przed i po "--" musza byc spacje
Go to the top of the page
+Quote Post
Crisu
post
Post #11





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 11.08.2006

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


Cytat(bełdzio @ 3.03.2009, 23:30:23 ) *
przed i po "--" musza byc spacje


Diabeł tkwi w szczegółach
saves the day : )
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




dziwne te szczegóły. jak pisałem wczesniej mi tam nigdy nie zadziałało wstawienie tych komentarzy, zarówno -- (ze spacjami) jak i /**/
Zawsze zapytanie sie wywala. Moze to zalezy od ustawien bazy, a moze od silnika generującego zapytania:mysql_query, czy adodb, czy pdo, czy inne
Go to the top of the page
+Quote Post
Crisu
post
Post #13





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 11.08.2006

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


to jeszcze takie pytanko bo na necie nie widze jednoznaczej odpowiedzi
Do mysql_query da sie przekazać więcej niż jedno zapytanie (np wstrzyknąć jakiegos delete/inserta) .
Z moich testów wynika, że nie ale może znów zapomniałem o jakieś spacji : )
Go to the top of the page
+Quote Post
ostrylg
post
Post #14





Grupa: Zarejestrowani
Postów: 144
Pomógł: 18
Dołączył: 11.12.2005
Skąd: Gdańsk

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


Poczytaj

http://www.techonthenet.com/sql/union.php
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: 27.08.2025 - 15:25