Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - sch3m4

#12
Nivel Web / Re: Duda con SQL injection
22 Abril 2008, 12:20 PM
Cita de: Lympex en 18 Abril 2008, 03:05 AM
(...) te darás cuenta de porqué te salta ese error cuando metes la comilla (las comillas se usan para las cadenas) (...)

Depende de si la página interpreta ese dígito como un número, o como carácter.
#14
El programar bien o mal no es si sabes usar las apis, cualquiera que lea la msdn puede usar una api. El programar bien o mal, se decide en cómo piensas cuando programas, si sigues alguna lógica, si defines una estructura de ejecución "decente" en tu programa, si sabes optimizar el código, si no tienes fallos.... Sobre todo es la manera de pensar lo que te hace ser un buen o mal programador, porque el saber hacer las cosas puede conseguirlo cualquiera que le dedique el tiempo suficiente. Así que eso de... "creo que soy un buen programador porque controlo las apis un 5.5 sobre 10", mejor dejarlo a un lado  :)

Plantéate lo siguiente, y esta es la pregunta que mata a la mayoría de la gente que programa: ¿qué utilidad tienen los programas que haces?
#15
Nivel Web / Re: Duda con SQL injection
19 Abril 2008, 21:26 PM
Cita de: Leber en 19 Abril 2008, 20:21 PM
he visto varios manuales sobre inyecciones como lo hacian y parecia facil, pero debo ser borrico...

No te preocupes, pasa mucho xD

Lo que dices de la " ' " no es del todo correcto... En sql server y en mysql (versiones a partir de la 5), puedes meter tus propias sentencias con " ; ", por ejemplo:

listado.php?id=5;SELECT * FROM mysql.users /*

Pero en las versiones menores que la 5 en mysql no puedes hacer eso, tienes que jugar con la inyección ciega, plantéatelo como si jugases con un niño pequeño, a que él piensa una palabra y tú se la adivinas, y le vas preguntando:

CitarP: La palabra que estás pensando, tiene más de 4 caracteres?
R: SI
P: La palabra que estás pensando, tiene más de 5 caracteres?
R: NO
P: La palabra que estás pensando tiene 5 caracteres?
R: SI

Y sabes la longitud de la palabra, y ahora le preguntas:

CitarP: El código ascii del primer caracter de la palabra que estás pensando es mayor que 64?
R: SI
P: El código ascii del primer caracter de la palabra que estás pensando es mayor que 65?
R: NO
P: El código ascii del primer caracter de la palabra que estás pensando es 65?
R: SI

Y le vas preguntando el código ascii desde el primer caracter, hasta el quinto caracter, que fúe la longitud que te dijo que tenía la palabra.

Así que ahora que tienes el código ascii te vas a www.asciitable.com y buscas el 65 que es 'A', y así sacas la palabra que está pensando el niño.

En las inyecciones sql ciegas se trata de jugar a este mismo juego, pero con el servidor. Remarco lo de ciegas, porque puede que le hagas un "SELECT * FROM usuarios" y te muestre toda la tabla...

En mysql tienes que tener muy en cuenta sobre qué versión está el servidor, (a grandes rasgos, si la version es <5 o >=5 (te acuerdas del juego del niño pequeño...?  ;) ) Ya que como te decía en el otro post, si es menor que 5, no te queda otra que la fuerza bruta para sacar los nombres de las tablas (una vez las tienes puedes volver a jugar al juego del niño pequeño para sacar las columnas y los campos), y si es >=5, puedes consultar la tabla INFORMATION_SCHEMA.

Yo que tú, probaría a instalarme en una máquina virtual un sql server y una mysql 5, y una vez las comprendas y sepas hacerlo, métete con la 4, que en el aspecto de saber explotar la vulnerabilidad, es más difícil.

Para ver diferentes métodos, pueder cojer alguna herramienta que te automatice el proceso, y corres un sniffer para saber cómo saca los datos, entiende por qué lo hace de esa manera, e intenta hacerlo tú a mano. Así es como más vas a aprender.  :)
#17
Nivel Web / Re: Duda con SQL injection
18 Abril 2008, 03:05 AM
Para explotar ese fallo no te vendría mal leer algo sobre SQL, en concreto sobre MS SQL Server que es el que corre el servidor. Si lo haces, te darás cuenta de porqué te salta ese error cuando metes la comilla (las comillas se usan para las cadenas).

Si es simple curiosidad no esperes una herramienta que te lo haga todo, trata de aprender algo sobre sql y porqué es vulnerable esa web. Con eso lo tienes todo hecho.
#18
tienes que crear una estructura con todos los datos que quieras pasarle, y en el parametro le pasas la estructura
#20
es para poder usar funciones de una librería, por ejemplo las APIs de windows

http://msdn2.microsoft.com/es-es/library/4zey12w5(VS.80).aspx
http://support.microsoft.com/kb/106553/es (concretamente el punto 2)