elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  Duda sustancial SQL Injection
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sustancial SQL Injection  (Leído 4,011 veces)
zaderna

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Duda sustancial SQL Injection
« en: 5 Mayo 2009, 14:23 pm »

Buenas tardes;

LLevo estudiando varios dias SQL Injection, me ha surgido una duda que no encuentro por ninguna parte. Comprendo las consultas que hay que introducir en los campos de los formularios para asi poder formar una sentencia SQL con un resultado positivo.

Me monte un servidor apache con mysql y php, para poder estudiar mejor. Hice un formulario de autenticación que hace una consulta al servidor sql, todo bien, me di cuenta que para poder poner:

Usuario:' OR '1'='1
Pass:' OR '1'='1

Tuve que desactivar las magic quotes, ¿Esto significa que en php ya no es posible la injeccion SQL?

Para ver si una web es vulnerable a XSS, suelo poner el algun buscador, formulario el tipico script con un alert. ¿Hay algun metodo parecido para sql injection?

Con motivos de aprendizaje me tope con una web, que en el buscador ponias  ' OR '1'='1 y efectivamente devolvia todo, pero para los formularios de login nunca he obtenido resultados, intente hacer una consulta a alguna tabla que no existiera (me la invente) para que devolviera algun error y asi conocer mas datos sobre la base de datos, pero nunca me funciono.

Bueno espero no haber repetido post (he buscado pero no he encontrado).

Un saludo
En línea

Nork

Desconectado Desconectado

Mensajes: 196



Ver Perfil
Re: Duda sustancial SQL Injection
« Respuesta #1 en: 5 Mayo 2009, 22:26 pm »

Exacto, a partir de una  versión de PHP (no recuerdo ahora cual) trae las magic quotes activadas por defecto. Prueba con alguna versión PHP más antigua para hacer las prácticas.

Sobre si hay algún método para saber si es vulnerable a SQLI? Pues te digo que en aplicaciones del tipo "noticia.php?id=X" hay un método sencillo para saber si es vulnerable y es con "-1 order by 99" Si la página devuelve un error SQL tendrías que ir bajando el numero 99 y de ahí sacar las tablas, por ejemplo, si pones "-1 order by 7" y en la página te tendría que salir una noticia con título y contenido, visualizarias algo así como:

Título: 1
Contenido: 2

(Si ves ésto y no el error de antes es que esa BD tiene 7 tablas.)

Donde digamos que los números son "canales" de salida con los que tendrás que jugar. Por ejemplo si ya sabes que tiene 7 tablas la BD y quieres saber el nombre de ésta escribes:

"-1+union+select+all+1,database()"

Y visualizarías en donde antes había un 2 (en contenido) el nombre de la BD.

Y así seguirías con las pertinentes sentencias SQL. Pero para poder hacer las prácticas (ya que tu ejemplo en un caso real ya no existiría) consigue una versión PHP un poco más antigua.


S4ludos!
« Última modificación: 6 Mayo 2009, 07:52 am por Nork » En línea

C' Est La Vie
Data Seek3r

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Re: Duda sustancial SQL Injection
« Respuesta #2 en: 6 Mayo 2009, 02:14 am »

Exacto, a partir de una  versión de PHP (no recuerdo ahora cual) trae las magic quotes desactivadas por defecto.


Te estas contradiciendo totalmente.

(Si ves ésto y no el error de antes es que esa BD tiene 7 tablas.)

No son 7 tablas, son 7 columnas.
En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Duda sustancial SQL Injection
« Respuesta #3 en: 6 Mayo 2009, 02:35 am »

Citar
"-1 order by 7"

Eso seguria dando error siempre.
Citar
ejemplo, si pones "-1 order by 7" y en la página te tendría que salir una noticia con título y contenido, visualizarias algo así como:

Título: 1
Contenido: 2

No te mostraria eso para eso tendrias que hacer un union select  ..
Citar
"-1+union+select+all+1,database()"

No tenia 7 "tablas" ( son columnas pero bueno ) entonces por que pones 2 solamente ?
En línea



Yo le enseñe a Kayser a usar objetos en ASM
Nork

Desconectado Desconectado

Mensajes: 196



Ver Perfil
Re: Duda sustancial SQL Injection
« Respuesta #4 en: 6 Mayo 2009, 07:52 am »

 :-\ En efecto, no sé en que estaría pensando: son columnas y en el caso que fuesen siete y no dos sería:

"-1+union+select+all+1,database(),3,4,5,6,7"

Debería haber revisado lo que escribo ya que lo escribí rápido y por lo visto mal.
« Última modificación: 6 Mayo 2009, 14:13 pm por Nork » En línea

C' Est La Vie
zaderna

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Duda sustancial SQL Injection
« Respuesta #5 en: 6 Mayo 2009, 10:21 am »

Muchas gracias por contestar a todos.

Nork
Citar
Pero para poder hacer las prácticas (ya que tu ejemplo en un caso real ya no existiría) consigue una versión PHP un poco más antigua.

Mi ejemplo ya no es valido por las magic quotes, (supongo que todavia quedara por ahi algun server con version antigua de php) en asp por defecto ¿tiene algo parecido?.

Me refiero a que por ejemplo el otro dia lei, que SQLI era uno de los ataques mas populares en la actualidad. En mi ejemplo tampoco valdria Blind SQLI ¿no?. ¿Entonces que tecnicas de SQLI se utilizan ahora?

Y claro, supongo, que dependiendo de nuestro objetivo, ya sea asp, php, mysql, sqlserver... habra distintos metodos para llevar a cabo el ataque ¿no?
En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Duda sustancial SQL Injection
« Respuesta #6 en: 6 Mayo 2009, 11:01 am »

Que sea ASP,PHP,Visual basic,C,etc.. no influye en inyeccion SQL lo que importa es la base de datos asi es Mysql,MSSQl,etc..
En línea



Yo le enseñe a Kayser a usar objetos en ASM
Nork

Desconectado Desconectado

Mensajes: 196



Ver Perfil
Re: Duda sustancial SQL Injection
« Respuesta #7 en: 6 Mayo 2009, 14:24 pm »

Cita de: zaderna link=topic=254077.msg1229814#msg1229814
Mi ejemplo ya no es valido por las magic quotes, (supongo que todavia quedara por ahi algun server con version antigua de php) en asp por defecto ¿tiene algo parecido?.

Hasta donde yo sé asp no te soluciona éste problema si no que tendrías que implementar un filtro propio.

Citar
En mi ejemplo tampoco valdria Blind SQLI ¿no?.

Poder... sí, pero sería un poco tontería ya que si consigues pasar un sistema de autenticación por ese método es que ya puedes obtener la cuenta admin sin ningún problema xD

Citar
¿Entonces que tecnicas de SQLI se utilizan ahora?

La técnica en si es la misma conceptualmente, lo que cambia sería el proceso que sigues para obtener los resultados. Como dice YST la diferencia de utilizar un proceso o otro es independiente de si es ASP, PHP, JSP... si no que depende del sistema gestor de base de datos ya que son estos los que interpretan las sentencias SQL y cada uno tiene su propia sintaxis (sin salirse de lo que sería el SQL estandar xD)

No sé si le has dado una mirada a éste tutorial, si no dásela.  ;) (como puedes ver el tutorial se centra en los SGDB MySQL)
En línea

C' Est La Vie
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con Sql Injection en Sql Map
Nivel Web
Blackhawk222 3 3,018 Último mensaje 14 Febrero 2012, 11:24 am
por cibergolen
[DUDA] DNS SQL Injection
Hacking
parentesco 1 2,959 Último mensaje 25 Mayo 2012, 20:03 pm
por toxeek
Xss injection & sql injection pequeña duda.
Nivel Web
6666 6 3,563 Último mensaje 12 Septiembre 2014, 07:27 am
por 6666
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines