Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako postupno do uspešnog MySQL Injection u localhostu

[es] :: MySQL :: Kako postupno do uspešnog MySQL Injection u localhostu

[ Pregleda: 2854 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MalGanis
Prishtina

Član broj: 109721
Poruke: 8
79.101.233.*



Profil

icon Kako postupno do uspešnog MySQL Injection u localhostu07.06.2009. u 10:25 - pre 181 meseci
Znam da je bilo dosta reči o ovoj temi, ali nikako do sada nisam uspeo da na nekom primeru primenim SQL Injection.
Naime, potreban mi je prost primer kako preko Login forme na Web sajtu koji radi pod localhostom da primenim MySQL Injection?
Neka tabela admin u bazi ima 3 polja :

+-----------+----------------------+
| ID | username | password |
+-----------+----------------------+



Code:

<?php
    include "common.inc";
    $db_link = db_connect();
                
    $query = "SELECT * FROM admin WHERE username = '$username' AND password = '$password' ";
    $result = mysql_query($query, $db_link);
    $row = mysql_fetch_row($result);
    if ($row != null)
    
        header("Location:AdminHome.php");
    else 
    
        header("Location:NeuspelaPrijava.php");
?>    



Na strani gde je Login forma za prijavu administratora, u polju za username kucam ' OR '1'='1 i isto to za password parametar. Međutim, neuspeo Injection jer me uvek vrati na NeuspelaPrijava.php

Relativno sam nov u PHP-u i MySQL-u, unapred hvala.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Kako postupno do uspešnog MySQL Injection u localhostu07.06.2009. u 13:28 - pre 181 meseci
Probaj ove vrednosti za username i password:
Code:
$username = "a' OR '1'='1";
$password = "a' OR '1'='1";

Za tu vrstu SQL injection-a se obično podrazumeva da znaš username nekog člana, pa onda samo za password staviš tako nešto: a' OR '1'='1...

Mada u tabelama sa tim podacima o korisnicima, password je (obično) u enkriptvanom formatu, pa sad ne znam kako bi neki injection "zaobišao" ovakav upit:
Code:
SELECT * FROM users WHERE username = '$username' AND password = SHA1('$password');
 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: Kako postupno do uspešnog MySQL Injection u localhostu07.06.2009. u 13:37 - pre 181 meseci
Citat:
Nikola Poša:
Mada u tabelama sa tim podacima o korisnicima, password je (obično) u enkriptvanom formatu, pa sad ne znam kako bi neki injection "zaobišao" ovakav upit:
Code:
SELECT * FROM users WHERE username = '$username' AND password = SHA1('$password');


Pa ako znas da tako izgleda query mozes napisati reicmo
$password= ') OR '1'=('1


:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

MalGanis
Prishtina

Član broj: 109721
Poruke: 8
93.86.66.*



Profil

icon Re: Kako postupno do uspešnog MySQL Injection u localhostu07.06.2009. u 15:30 - pre 181 meseci
Code:
<?php
    include "common.inc";
    $db_link = db_connect();
                
    $query = "SELECT * FROM admin WHERE username = '$username' AND password = '$password' ";
    $result = mysql_query($query, $db_link);
    $row = mysql_fetch_row($result);
    if ($row != null)
    
        header("Location:AdminHome.php");
    else 
    
        header("Location:NeuspelaPrijava.php");
?>  


Čudi me da ovako jednostavan php skript za proveru identiteta korisnika koji ne sadrži niti jednu od funkcija za kriptovanje (sha i md5) ne može da se "odradi" pomoću sql injectiona, tačnije znam da može, ali meni nikako ne uspeva.

Inace, pokusavao sam preko Xamp-a (Apache 2.2.11,MySQL 5.1.33 ) i preko phpTriad, međutim uvek kada pokušam da u poljima za username i password unesem:

"a' OR '1'='1"
ili
' OR '1'='1

vraća me na grešku pri prijavi, neispravni user i pass.

Dakle, kako primeniti SQL Injection, tacnije kako postaviti kod da bi bio otvoren za injection?
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Kako postupno do uspešnog MySQL Injection u localhostu07.06.2009. u 16:32 - pre 181 meseci
Citat:
misk0: Pa ako znas da tako izgleda query mozes napisati reicmo
$password= ') OR '1'=('1

Da, u pravu si, tačnije samo ovako nešto:
Code:
$password= "'a') OR '1'=('1'";

Citat:
MalGanis:Dakle, kako primeniti SQL Injection, tacnije kako postaviti kod da bi bio otvoren za injection?

A jesi probao npr. u phpMyAdmin-u da izvršiš neki od tih upita?
 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Kako postupno do uspešnog MySQL Injection u localhostu07.06.2009. u 16:48 - pre 180 meseci
da nije uključena opcija magic_quotes ili tako nešto ?


 
Odgovor na temu

MalGanis
Prishtina

Član broj: 109721
Poruke: 8
77.46.218.*



Profil

icon Re: Kako postupno do uspešnog MySQL Injection u localhostu07.06.2009. u 19:03 - pre 180 meseci
Citat:
tarla: da nije uključena opcija magic_quotes ili tako nešto ?


magic_quotes_gpc = On
magic_quotes_runtime = Off / ako se ne varam meni je za ovaj slucaj bitna ova, a ona je kao sto se vidi of
magic_quotes_sybase = Off
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Kako postupno do uspešnog MySQL Injection u localhostu07.06.2009. u 20:13 - pre 180 meseci
Probaj samo da jednom otštampaš tu promenljivu $query, pre mysql_query(), čisto da vidiš da li ima onih backspace-ova pre jednostrukih navodnika...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Kako postupno do uspešnog MySQL Injection u localhostu08.06.2009. u 08:06 - pre 180 meseci
obzirom na to da vrednosti skupljas iz get/post/cookie .. validna vrednost za magic quotes ti se nalazi u deprecated magic_quotes_gpc ... te kada pokupis tu vrednost kroz post/get php ti sam odradi escape tih navodnika i ostalih smor znakova te samim tim sprecava injection.
 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Kako postupno do uspešnog MySQL Injection u localhostu08.06.2009. u 12:54 - pre 180 meseci
Citat:
MalGanis: magic_quotes_gpc = On


rekoh li ja... :)




 
Odgovor na temu

Marko Medojević
Team leader
Digital ST
Beograd

Član broj: 93659
Poruke: 776
*.adsl-1.sezampro.yu.

Sajt: www.digitalst.rs


+99 Profil

icon Re: Kako postupno do uspešnog MySQL Injection u localhostu11.06.2009. u 21:13 - pre 180 meseci
Magic quotes izvršava addslashes() funkciju nad svim vrednistima koje kupiš iz GET/POST nizova, tako da ti to verovatno smeta da uradiš sam sebi MySQL injection. Probaj da isključiš magic quotes u .htaccess-u ili da pre primene injectiona pozoveš stripslashes funkciju nad ulaznim parametrima koje ubacuješ u upit.
Primer:
Code:

$username = stripslashes($_GET['username']);
 
Odgovor na temu

MalGanis
Prishtina

Član broj: 109721
Poruke: 8
79.101.213.*



Profil

icon Re: Kako postupno do uspešnog MySQL Injection u localhostu15.06.2009. u 22:08 - pre 180 meseci
Da, hvala na odgovorima.

Od krucijalnog značaja je magic quotes = off
 
Odgovor na temu

[es] :: MySQL :: Kako postupno do uspešnog MySQL Injection u localhostu

[ Pregleda: 2854 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.