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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  Algun entendido en SQL Injection?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Algun entendido en SQL Injection?  (Leído 5,315 veces)
Ertai
Colaborador
***
Desconectado Desconectado

Mensajes: 2.025


Ralph Wiggum


Ver Perfil
Algun entendido en SQL Injection?
« en: 10 Mayo 2005, 18:54 pm »

Despues de intentar un injección SQL con esta URL:
Código:
http://*****/wowbb/view_user.php?list=1&letter=&sort_by=SQL INJECTION
Donde pone SQL INJECTION, yo puse ' HAVING 1=1-- para que me diera un error y poder sacar información.
Y saco esto:
Código:
Petición SQL Inválida: SELECT u.*, m.mana FROM wowbb_users u LEFT JOIN wowbb_manas m USING (user_id) WHERE user_activation_key = '' ORDER BY , u.user_name LIMIT 0, 40-You have an error in your SQL syntax near ' u.user_name LIMIT 0, 40' at line 1
Pero lo intento todo y me quedo en el mismo error, no avanzo  :'(
Alguien me puede ayudar?
Recuerdo que lo que yo pongo va despues de ORDER BY

Saludos,
Ertai
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.536



Ver Perfil WWW
Re: Algun entendido en SQL Injection?
« Respuesta #1 en: 11 Mayo 2005, 20:23 pm »

Tienes dos opciones, que tendras que buscar:

- subconsutas.

- UNION SELECT

Busca info al respecto, referidas a MySQL. Te costara algo buscarlo, pero fijo que lo encontraras con un poco de google y paciencia.

Tambien puedes probar con
Código:
; SELECT ..... -- 
pero normalmente, por seguridad, MySQL no permite separar instrucciones MySQL por ";".

Salu2
En línea

Ertai
Colaborador
***
Desconectado Desconectado

Mensajes: 2.025


Ralph Wiggum


Ver Perfil
Re: Algun entendido en SQL Injection?
« Respuesta #2 en: 11 Mayo 2005, 21:13 pm »

Citar
Tambien puedes probar con
Código:
; SELECT ..... --
pero normalmente, por seguridad, MySQL no permite separar instrucciones MySQL por ";".

Buena idea! Tiene su lógica, probaré, pero como tu dices, sería muy descuidado por su parte dejar separar instrucciones.

Citar
Tienes dos opciones, que tendras que buscar:

- subconsutas.

- UNION SELECT

Busca info al respecto, referidas a MySQL. Te costara algo buscarlo, pero fijo que lo encontraras con un poco de google y paciencia.

Buscaré con paciencia.

Gracias Rojodos.
Ertai.
En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
ColdWinteR

Desconectado Desconectado

Mensajes: 60

"el niubi" (phase 2)


Ver Perfil WWW
Re: Algun entendido en SQL Injection?
« Respuesta #3 en: 12 Mayo 2005, 10:17 am »

Yo también buscaré info al respecto; si la encuentro la pondré aquí mismo. Si por el contrario, encuentras algo antes que yo, hazlo saber :)
En línea

ColdWinteR

Desconectado Desconectado

Mensajes: 60

"el niubi" (phase 2)


Ver Perfil WWW
Re: Algun entendido en SQL Injection?
« Respuesta #4 en: 16 Mayo 2005, 02:16 am »

Para que no te dé error has de poner una de las tablas detrás del ORDER BY, pues si no, estás pasándole como argumento a dicha función ", u.user_name LIMIT 0, 40-".
Si el código del SQL Injection comienza justo detrás del ORDER BY, lo primero que tendrás que poner será una tabla (por ejemplo, m.mana), y a raíz de ahí, realizar tus consultas mediante UNION SELECT.
Y ahí es donde radica mi problema xD Yo estoy probando otro SQL Injection muy similar a este, sobre Invision Power Board. Este es el PoC:
http://www.example.com/forums/index.php?act=Members&max_results=50&st=SQL_INJECTION
Al introducir esto en el navegador, sobre un foro vulnerable, se obtienen los siguientes resultados:
Código:
mySQL query error: SELECT m.columnas
    FROM la_tabla
    ORDER BY m.columnas asc
    LIMIT SQL_INJECTION,50
mySQL error: You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SQL_INJECTION,50' at line 8
Esto me hizo deducir que la inyección se producía sobre el primer parámetro de LIMIT. El segundo parámetro, es el que se le atribuye en "max_results" en el navegador. Por tanto (y dándole muchas vueltas al tema mareado por google, porque no tenía ni idea de mySQL XD), finalmente he conseguido algo así:
Código:
mySQL query error: SELECT m.columnas
    FROM la_tabla
    ORDER BY m.columnas asc
    LIMIT 0,50 UNION ALL SELECT * FROM la_tabla LIMIT 0,50
...y este ha sido el error:
Código:
mySQL error: Wrong usage of UNION and ORDER BY
Fallo en el ORDER BY y en el UNION... y no toqué el ORDER BY. He llegado a la conclusión de que falla debido a que las dos consultas deben ir entre paréntesis, aunque no estoy seguro; digo esto porque siempre que he visto un UNION, las consultas que "unía" estaban en esta situación.
No obstante, el caso es que estoy "atascado", y tampoco sé cómo meter los paréntesis al principio y al final de cada consulta en mi navegador. ¿Alguna idea?
« Última modificación: 16 Mayo 2005, 02:19 am por ColdWinteR » En línea

Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.536



Ver Perfil WWW
Re: Algun entendido en SQL Injection?
« Respuesta #5 en: 17 Mayo 2005, 09:20 am »

Hablo de memoria pero creo que los UNION SELECT van detras de una consulta SQL que no se cumple.

Por eso, se suele poner un
Código:
AND 1=2 UNION SELECT .....

El 1=2 obviamente no se cumple, entonces se ejecuta el union select.

Hay bastantes papers sobre SQL inject, aunque la mayoria para servidores MSSQL o Oracle, deberas buscar un poco para encontrar algunos que hablen de SQL injection en aplicaciones que usen BD MySQL.

Salu2
En línea

ColdWinteR

Desconectado Desconectado

Mensajes: 60

"el niubi" (phase 2)


Ver Perfil WWW
Re: Algun entendido en SQL Injection?
« Respuesta #6 en: 17 Mayo 2005, 12:09 pm »

Los UNION unen los resultados de dos consultas, independientemente de si se cumplen o no.
Efectivamente, ayer seguí buscando, y el error está en que existe una ambigüedad entre el UNION y el ORDER BY, por lo que es necesario el uso de paréntesis al principio y al final de cada una de las dos consultas:
Código:
(SELECT campo1,campo2 FROM tabla WHERE campo1>50 ORDER BY campo2 asc) UNION (SELECT campo2,campo3 FROM tabla WHERE campo3<50 ORDER BY campo2 asc)
Algo como esto devolvería los registros de los campos "campo1" para los cuales fueran mayores a 50; todos los registros del "campo2"; y los registros menores a 50 del "campo3" de la tabla "tabla", ordenados ascendentemente por el "campo2".
Si no estuviera ese maldito ORDER BY, no sería necesario el uso de paréntesis, y en mi caso, ni se puede quitar ni se puede meter entre paréntesis la primera consulta.
Quizás se pueda sacar algo con esto por "fuerza bruta" mediante subconsultas... porque las otras dos cláusulas que se pueden usar después de un LIMIT, aparte de UNION, son INTO y PROCEDURE, y creo que no son aprovechables aquí.
Esa es mi investigación hoy... xD ThX :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Algún entendido en apuestas de baloncesto y Hándicap?
Foro Libre
Eleкtro 1 2,491 Último mensaje 9 Abril 2017, 09:51 am
por Eleкtro
¿Algún entendido en comprar con iTunes?
Foro Libre
Randomize 1 1,520 Último mensaje 9 Abril 2017, 23:13 pm
por Randomize
¿Algun entendido de sintetizadores de los años 80?
Dudas Generales
FreeCellnet 0 1,811 Último mensaje 13 Abril 2019, 23:18 pm
por FreeCellnet
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines