Foros del Web » Programando para Internet » PHP »

SQL inyection

Estas en el tema de SQL inyection en el foro de PHP en Foros del Web. hola muchachos. He estado mirando este tema y aun me pregunto como demonios?? he intentado hacer el ataque a una web que tengo pero emmm ...
  #1 (permalink)  
Antiguo 06/03/2012, 09:20
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
SQL inyection

hola muchachos.

He estado mirando este tema y aun me pregunto como demonios??
he intentado hacer el ataque a una web que tengo pero emmm no lo puedo hacer y eso que tengo un nivel en seguridad muy bajo.
Intente esto:
Código PHP:
Ver original
  1. $sql="SELECT * FROM usuarios WHERE user = '$user' ";
  2. mysql_query($sql,$link);
bueno ese es un codigo basico, envie algunos datos via GET y se modifica el valor de $user , pero no ejecuta nada, esto por que mysql_query no soporta "multiconsulta" hice algo asi
index.php?user=pepito OR 1 = 1
o bueno otras como anteceder ; y hacer un select pg_shadow where username='postgres' (esto lo vi en el manual)

Solo no entiendo cual es "el hueco" de seguridad? si coloco WHERE user = '$user', noten que la variable esta entre comillas, entonces deberia interpretar ese valor ingresado como un string no??.

Me pueden guiar acerca de esto?? cual es la importancia?? por que usar addslashes() ?? y algunas otras cosas que he leido, gracias
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #2 (permalink)  
Antiguo 06/03/2012, 11:02
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 8 meses
Puntos: 103
Respuesta: SQL inyection

mira, prueba con el siguiente user:
' or '1'='1
entonces vas a:
index.php?user=' or '1'='1
y el select te va a quedar asi:
SELECT * FROM usuarios WHERE user = '' or '1'='1'
entonces, este select va a seleccionar creo que el primer usuario en la tabla

saludos
  #3 (permalink)  
Antiguo 06/03/2012, 12:17
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: SQL inyection

WTF!!! me auto inyecte????? que seguirdad tan pesima la mia, bueno estuve buscando y coloque el addslashes para eso y funciona... con eso seria suficiente??

Ahora tienes algun manual sobre esto... no me interesa saberlo para "causar daño" solo que necesito optimizar mi sistema, he estado leyendo y bueno, agradecería mas informacion
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #4 (permalink)  
Antiguo 06/03/2012, 12:36
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 56
Respuesta: SQL inyection

Podrias agregarle mysql_real_escape_string que tampoco es complicado.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #5 (permalink)  
Antiguo 06/03/2012, 13:28
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: SQL inyection

Otra opción es utilizar algo un poco mas nuevo y dejar de lado esas funciones tan antiguas, te sugiero que el eches un vistazo a PDO y Prepared Statements.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 06/03/2012, 14:15
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: SQL inyection

Cita:
Iniciado por CesarHC Ver Mensaje
Podrias agregarle mysql_real_escape_string que tampoco es complicado.
Hola gracias, lo intente pero no reconoce la funcion, imagino que debo agregar una libreria desde el php.ini....

Cita:
Iniciado por masterpuppet
Otra opción es utilizar algo un poco mas nuevo y dejar de lado esas funciones tan antiguas, te sugiero que el eches un vistazo a PDO y Prepared Statements.

Saludos.
empezare a leer, hasta ahora entro en este mundo de la seguridad de una manera mas profunda...
Su nombre es por Metallica???
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #7 (permalink)  
Antiguo 06/03/2012, 15:26
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: SQL inyection

Cita:
Iniciado por malakian Ver Mensaje
Hola gracias, lo intente pero no reconoce la funcion, imagino que debo agregar una libreria desde el php.ini....
El manual oficial no dice nada de tener que configurar el php.ini para usar esa función. Te habrás equivocado por otro lado.

Aún así, como ya te ha comentado masterpuppet, olvidate de mysql_real_escape_string o similares y centrate en PDO y en sus consultas preparadas. Una vez lo aprendas te darás cuenta de los grandes beneficios que te reportará

Saludos,
  #8 (permalink)  
Antiguo 06/03/2012, 17:44
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: SQL inyection

Cita:
Iniciado por malakian Ver Mensaje
Hola gracias, lo intente pero no reconoce la funcion, imagino que debo agregar una libreria desde el php.ini....
What?
Eso no funciona así, mysql_real_escape_string() es una función nativa de php y no hace falta agregar nada.
¿Te da un error al usarlo? Si es así comentalo para ver el problema y ayudarte.
Si tienes dudas con su uso puedes mirar ejemplos en el manual.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #9 (permalink)  
Antiguo 07/03/2012, 06:59
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: SQL inyection

Cita:
Iniciado por IEKK Ver Mensaje
What?
Eso no funciona así, mysql_real_escape_string() es una función nativa de php y no hace falta agregar nada.
¿Te da un error al usarlo? Si es así comentalo para ver el problema y ayudarte.
Si tienes dudas con su uso puedes mirar ejemplos en el manual.
Hola IEKK volvi a probar con la funcion mysql_real_escape_string() y me funciono de una vez, seguramente cuando lo probe la escribi mal...

donde puedo aprender mas de seguridad?
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #10 (permalink)  
Antiguo 07/03/2012, 07:44
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: SQL inyection

En el foro hay códigos que pueden servirte. O bien googlea.
El manual no es que tenga una gran cantidad de información pero explica lo básico.

http://php.net/manual/es/security.php

Php tiene funciones nativas para la seguridad ya sean para evitar inyecciones de sql o XSS, pero hay otras cosas útiles.

http://php.net/manual/es/function.htmlentities.php

http://php.net/manual/es/function.strip-tags.php

http://www.php.net/manual/es/functio...ape-string.php

Y otras que puedes usar para que tú código sea seguro a diferentes ataques.
El uso de los $_POST en los formularios... validar las variables que se recogen con $_GET...
Usar expresiones regulares...

Eso desde el lado del servidor, pero es importante también la seguridad desde el lado del cliente.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #11 (permalink)  
Antiguo 07/03/2012, 07:52
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: SQL inyection

XSS??? WTF!! me siento cada vez mas ignorante, pero bueno cada dia se aprende algo nuevo, gracias
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #12 (permalink)  
Antiguo 07/03/2012, 08:01
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: SQL inyection

No tiene nada de raro. Una vez veas como son algunos tipos de ataques en XSS lo entiendes: XSS
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(

Etiquetas: inytection, seguridad, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:41.