elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
21 Noviembre 2008, 02:50  



+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderadores: дٳŦ٭, Red Mx)
| | |-+  Evitar inyección de SQL en PHP
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Evitar inyección de SQL en PHP  (Leído 2748 veces)
Jalbe

Desconectado Desconectado

Mensajes: 94



Ver Perfil
Evitar inyección de SQL en PHP
« en: 03 Junio 2004, 04:06 »

Hola ...

Como podria evitar la inyección de SQL en PHP, pregunto esto porque mi aplicacion en php fue ataca y se borraron algunos registros ....

Tengo hecha la validacion con javascript antes de enviar todos los formularios y la validación en php al recibir las variables , aparte de esto el servidor donde tengo alojada la página cambia las ' ingresadas por \' para evitar que cierren mi recepción de texto y escriban sentecias adicionales.

Existe alguna otra forma en la que puedan haber hackeado mi aplicacion  ? o existe la forma en que puedan hacer que la ' viaje como tal y puedieran inyectar sql ?  :-\

En línea
Azielito
Moderador Global
*****
Desconectado Desconectado

Mensajes: 6.930


>.<


Ver Perfil WWW
Re: Evitar inyección de SQL en PHP
« Respuesta #1 en: 03 Junio 2004, 04:27 »

Hola, mira esto creo que te servira un poco, o sea, sobre la SQL inyection :)
Citar
lorenzo hernandes garica
un pequeño error en vuestro script que permitiría a alguien inyectar consultas SQL contra la autenticación de usuario:

$ssql = "SELECT * FROM usuario WHERE nombre_usuario='$usuario' and clave_usuario='$contraseña'";

A través de ese sistema ( inseguro ) podemos hacer lo siguiente:

suponiendo que las variables del url son usuario y passwd ,

[script].php?usuario=[usuario valido]'--

Y con eso accederemos ( podrá resultar bajo determinadas condiciones ) a la interfaz protegida sin más que el nombre de usuario.
Quedaria asi la consulta:

SELECT * FROM usuario WHERE nombre_usuario='[USUARIO VALIDO]'-- and clave_usuario='$contraseña'
NOTA: -- comentará el resto de la consulta , en este caso la comprobación de password.

Así es posible hacer otro tipo de consultas más destructivas:

Usar OR 1 = 1 , ( siempre afirmativa ) etc.

Con versiones de mysql 4.x se pueden enviar consultas sin formato:
[CONSULTA 1];[2]...
posibilitando aun más una acción destructiva.
Esto en el articulo Autentificación PHP para múltiples usuarios usando MySQL
:)
En línea

el-brujo
Adm
*****
Desconectado Desconectado

Mensajes: 14.146


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: Evitar inyección de SQL en PHP
« Respuesta #2 en: 03 Junio 2004, 05:06 »

Validación con JavaScript es una autentica chorrada, ya que se puede saltar fácilmente.

Citar
Existe alguna otra forma en la que puedan haber hackeado mi aplicacion  ?


Si tienes acceso a los logs del apache, hechale un vistazo, quizás encuentres algo (una url muy larga, etc).

te recomiendo la lectura de este articulo:

http://area51.phpbb.com/docs/guide-standards.html

Dónde hay buenas maneras y consejos de cómo evitar ataques de inyección de SQL.

Aquí tienes otro:

http://www.7a69ezine.org/ezine/files/ver/15/3.txt

Aunque no es muy largo, da una idea de como evitar sql inyection.

La idea sería "limpiar" la variable $clave, para que sólo admita un password y no comillas tipo 'OR LIKE, etc.
« Última modificación: 03 Junio 2004, 05:08 por el-brujo » En línea

Give peace a chance
Rentero
Colaborador

Desconectado Desconectado

Mensajes: 1.157


La paciencia es la madre de la ciencia.


Ver Perfil
Re: Evitar inyección de SQL en PHP
« Respuesta #3 en: 03 Junio 2004, 06:27 »

Pues eso te diria yo, que limpies cada variable que pueda ser utilizada por un usuario, como el pass, el user, todo lo que se pueda:
En php tiene esta funcion para que no lea el contenido html, etc:
Código:
$clave = htmlspecialchars($clave);
En línea

Firmado.
Lmc

Desconectado Desconectado

Mensajes: 254


SpanishWebmaster.com


Ver Perfil WWW
Re: Evitar inyección de SQL en PHP
« Respuesta #4 en: 03 Junio 2004, 10:54 »

Esto podria evitarlas,almenos algunas.
Código:
$checkmyurl = preg_replace("#(/\*.*\*/)#", "", $_SERVER["REQUEST_URI"]);
if (stristr($checkmyurl,'union')) {
die();
}
Salu2
En línea

Todo lo que necesita un Webmaster.Manuales propios,codigos JavaScript,herramientas,etc.

Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC