mysql

Comments   3   Date Arrow  March 6, 2007 at 7:50pm   User  by Gonzalo Arreche

He estado toqueteando unos codigos por ahi.. y he descubrido q hay gente q realmente no se preocupa demasiado por la seguridad en los sitios web.. valla, con razon existen hackers :P

Unas de las cosas q me ha llamado la atención, son los parametros pasados a los scripts, estaban puestos dentro de las consultas SQL como si fueran de total confianza.. jua !

[php]
< ?php
mysql_query(”insert into tbl_mi_tabla set campo1=$_GET[campo1], campo2=$_GET[campo2]“);
?>
[/php]

Quiza para algunos (como el q escribio los codigos en los q yo husmeaba ;) ) esto no supone gran riesgo.. pero si q puede serlo.. he aqui un ejemplo de un ataque de Inyeccion SQL. (del sitio de php)

[php]
< ?php
// Consultar la base de datos para verificar si hay una coincidencia de usuario
$consulta = “SELECT * FROM usuarios WHERE usuario=’{$_POST['username']}’ AND password=’{$_POST['password']}’”;
mysql_query($consulta);

// No revisamos $_POST['password'], podria ser cualquier cosa que el usuario
// quiera! Por ejemplo:
$_POST['username'] = ‘aidan’;
$_POST['password'] = “‘ OR ”=’”;

// Esto quiere decir que la consulta enviada a MySQL seria:
echo $consulta;
?>
# SELECT * FROM usuarios WHERE usuario=’aidan’ AND password=” OR ”=”
[/php]

He aqui una solucion para esto… usar mysql_real_escape_string()

[php]
< ?php

$_POST['username'] = ‘aidan’;
$_POST['password'] = “‘ OR ”=’”;

// escapar los datos.
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);

// Consultar la base de datos para verificar si hay una coincidencia de usuario
$consulta = “SELECT * FROM usuarios WHERE usuario=’$username’ AND password=’$password’”;
mysql_query($consulta);

// Esto quiere decir que la consulta enviada a MySQL seria:
echo $consulta;
?>
# SELECT * FROM usuarios WHERE usuario=’aidan’ AND password=’\’ OR \’\'=\”
[/php]

Ahora si, nuestra consulta es segura.. :)

Tagged   ayudas · bobadas · problemas · seguridad · sistemas operativos · soluciones · utilidades

3 Comments

  • #1.   juliette 03.11.2007

    saludos mi niño moxo , bello

  • #2.   Gonzalo Arreche 03.17.2007

    Awante windows 98 loco !!!! jajajaja…. esto es para mi primo Gonzalo (casualmente = q yo, je)… ahora q tenes vista, no te acordas de lo q fue win 9x !! saluos !!!!

  • #3.   Tupeorpesadilla.com 03.27.2007

    hahahahaahah!

    fin.

    pd: buena explicacion de la inyección, como ves, no se que poner en el comentario, a ver si visitas mi blog y dejás algun comentario tmb!

Leave a Comment