| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 3001
Locație: țopăi pe tasta DELETE
|
| Trimis: Joi Iun 05, 2008 8:12 pm Titlul subiectului: escape [cred ca sunt prea obosit] |
|
|
am un asa
$page = mysql_real_escape_string(stripslashes($_GET['pagina']));
$sql = 'SELECT * FROM `tabel` WHERE `site`="'.$page.'"';
daca pun pagina=ceva"text imi da eroare de mysql... ca si cum escape-ul nu ar functiona.
daca dau print $page; imi iese ceva\"text si... nu ma prind care e ideea? de unde eroarea?
asta se intampla pe 2 masini... deci nu cred ca are PHP-ul meu nimic
edit // pot sa dau htmlspecialchars cu ENT_QUOTES dar... nu vreau, nu ma prind unde e greseala la escape |
|
| Sus |
|
jianuovidiu
Data înscrierii: 16/Mar/2006
Mesaje: 321
Locație: Bucharest
|
| Trimis: Vin Iun 06, 2008 9:35 am Titlul subiectului: |
|
|
incearca in formatul asta:
Cod:
$page = $_GET["pagina"];
$sql = "SELECT * FROM tabel WHERE site='$page'";
|
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 3001
Locație: țopăi pe tasta DELETE
|
| Trimis: Vin Iun 06, 2008 9:40 am Titlul subiectului: |
|
|
:lol:
// da si, vine gigel si pune un DROP table |
|
| Sus |
|
jianuovidiu
Data înscrierii: 16/Mar/2006
Mesaje: 321
Locație: Bucharest
|
| Trimis: Vin Iun 06, 2008 9:43 am Titlul subiectului: |
|
|
| Incearca sa dai DROP TABLE. Merge ? |
|
| Sus |
|
Maniero
Data înscrierii: 14/Mai/2008
Mesaje: 8
|
| Trimis: Vin Iun 06, 2008 9:51 am Titlul subiectului: |
|
|
in linia:
$page = mysql_real_escape_string(stripslashes($_GET['pagina']));
inverseaza ordinea functiilor, asa:
$page = stripslashes(mysql_real_escape_string($_GET['pagina'])); |
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 3001
Locație: țopăi pe tasta DELETE
|
| Trimis: Vin Iun 06, 2008 9:58 am Titlul subiectului: |
|
|
ok... hai sa-ti explic, e vorba de sql-injection si nu am de gand sa stau cu warning-uri prin pagina sau cu erori de sql... un DROP nu se da pur si simplu, am dat un exemplu exagerat dar... nu e or rezolvare, asta e clar...
si, nu vad diferenta dintre codul meu si codul tau... la tine e nevoie de escape la ghilimele simple, la mine de ghilimele duble... partea proasta e ca eu nu folosesc mereu ghilimelele duble si am nevoie de o functie care sa imi ofere protectie in orice situatie deci... Concluzie: nu asta e solutia |
|
| Sus |
|
jianuovidiu
Data înscrierii: 16/Mar/2006
Mesaje: 321
Locație: Bucharest
|
| Trimis: Vin Iun 06, 2008 10:00 am Titlul subiectului: |
|
|
stiu ca e sql injection.
Dar io chiar vreau sa testez acum cum pot sa fac drop la database din exemplul tau.
Eu n-am reusit. Ma poate ajuta cineva??...daca nu o sa deschid si un topic pe tema asta :D |
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 3001
Locație: țopăi pe tasta DELETE
|
| Trimis: Vin Iun 06, 2008 10:00 am Titlul subiectului: |
|
|
Maniero a scris: in linia:
$page = mysql_real_escape_string(stripslashes($_GET['pagina']));
inverseaza ordinea functiilor, asa:
$page = stripslashes(mysql_real_escape_string($_GET['pagina']));
pai, care e ideea? mysql_real_escape_string pune \ iar stripslashes le scoate :) si se ajunge la scriptul lui ovidiu |
|
| Sus |
|
Maniero
Data înscrierii: 14/Mai/2008
Mesaje: 8
|
| Trimis: Vin Iun 06, 2008 10:05 am Titlul subiectului: |
|
|
mda :)
Pe de alta parte, sa dai stripslashes la un text unescaped nu rezolva/modifica nimic.
Ma refer la stripslashes($_GET['pagina']); |
|
| Sus |
|
Maniero
Data înscrierii: 14/Mai/2008
Mesaje: 8
|
| Trimis: Vin Iun 06, 2008 10:08 am Titlul subiectului: |
|
|
Da pt ca tu ai nevoie de string-ul respectiv pt un SELECT, eu zic ca nu ai nevoie de stripslashes. Adica iti trebuie doar:
mysql_real_escape_string($_GET[]); |
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 3001
Locație: țopăi pe tasta DELETE
|
| Trimis: Vin Iun 06, 2008 10:19 am Titlul subiectului: |
|
|
pai... ideea e ca am mysql_real_escape_string(CEVA) dar e posibil ca CEVA sa mai fi primit escape din alta parte iar in cazul unui INSERT voi avea in baza ghilimele cu \ ... astfel pun mysql_real_escape_string(strip(CEVA)) ca sa fiu sigur ca strip(CEVA) e 'curat' ;)
nu stiu daca o fi ceva din setarile PHP referitor la porcaria asta... |
|
| Sus |
|
jianuovidiu
Data înscrierii: 16/Mar/2006
Mesaje: 321
Locație: Bucharest
|
| Trimis: Vin Iun 06, 2008 12:00 pm Titlul subiectului: |
|
|
Vreau si eu sa-mi demonstreze careva daca se poate face sql injection folosind codul:
Cod:
$page = $_GET["pagina"];
$sql = "SELECT * FROM tabel WHERE site='$page'";
Va rog dati exemple testate/verificate.
Eu am incercat si nu am reusit.
Multumesc. |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2573
Locație: Bucuresti
|
| Trimis: Vin Iun 06, 2008 12:22 pm Titlul subiectului: |
|
|
// Fix input variables
if (get_magic_quotes_gpc())
{
$_GET = array_map('stripslashes', $_GET);
$_POST = array_map('stripslashes', $_POST);
$_COOKIE = array_map('stripslashes', $_COOKIE);
} |
|
| Sus |
|
kyron
Data înscrierii: 16/Sep/2004
Mesaje: 542
Locație: Bucuresti
|
| Trimis: Vin Iun 06, 2008 12:35 pm Titlul subiectului: |
|
|
jianuovidiu a scris: Vreau si eu sa-mi demonstreze careva daca se poate face sql injection folosind codul:
Cod:
$page = $_GET["pagina"];
$sql = "SELECT * FROM tabel WHERE site='$page'";
Va rog dati exemple testate/verificate.
Eu am incercat si nu am reusit.
Multumesc.
Daca $page este asa: ';DELETE FROM tabel WHERE 1 = '1 atunci query-ul devine:
SELECT * FROM tabel WHERE site='';DELETE FROM numere WHERE 1 = '1'
Si se cam goleste tabela. |
|
| Sus |
|
Birkoff
Data înscrierii: 18/Mar/2004
Mesaje: 2573
Locație: Bucuresti
|
| Trimis: Vin Iun 06, 2008 12:50 pm Titlul subiectului: |
|
|
kyron a scris:
Daca $page este asa: ';DELETE FROM tabel WHERE 1 = '1 atunci query-ul devine:
SELECT * FROM tabel WHERE site='';DELETE FROM numere WHERE 1 = '1'
Si se cam goleste tabela.
daca magic_quotes_gpc este ON (in php.ini) atunci va pune slashes automat si codul tau nu va mai fi chiar asa... pe cand daca e OFF (gresala adminului acelui server) atunci poti face sql injection fara prea mari eforturi (daca nu se fac verificari in script desigur)... |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |