Ayuda - Búsqueda - Miembros - Calendario
Versión Completa: ni mas ni menos
Foro > Wargame > Seguridad
claudio2205
el reto esta bien explicado pero para que no quede ninguna duda:
a la inyeccion sql del enunciado no hay que agregarle ni sacarle ningun caracter, solo acomodarlos de distinta forma moviendo la menor cantidad. es asi o entendi mal??
garcez
Claro que hay que modificar la inyección y tal vez agregar algo más...

Pueden descargar el script vulnerable que he dejado, reconstruir la BD y tabla para realizar pruebas de forma local; aunque esto no es necesario, solo hay que leer el código php.

Luego el objetivo es modificar la inyección SQL para que funcione con el mínimo número de caracteres, en realidad se puede resolver de dos formas, la diferencia de estas dos soluciones son solo dos caracteres, la pareja de caracteres más utilizada funcionará como respuesta.

saludos ;)
PerverthsO
bueno creo tener ya el codigo q debe hacer q el codigo de injeccion funcione lo pongo pero nada no me esta validando :S y estoy seguro deq es asi :S
garcez
CITA(perverthso @ 14/01/2008 16:50) *
bueno creo tener ya el codigo q debe hacer q el codigo de injeccion funcione lo pongo pero nada no me esta validando :S y estoy seguro deq es asi :S


Te he respondido por MP, revisa de nuevo el código vulnerable, te aseguro que hace falta algo en la inyección que estás realizando.

Saludos.
dmouse
hola, ya he tengo la respuesta lo he probado en mi maquina pero a la hora de ingresar la respuesta me dice que esta mal, a alguien le puedo mandar la respuesta por MP? o que podria hacer?
garcez
CITA(dmouse @ 20/01/2009 18:24) *
hola, ya he tengo la respuesta lo he probado en mi maquina pero a la hora de ingresar la respuesta me dice que esta mal, a alguien le puedo mandar la respuesta por MP? o que podria hacer?


Envíame un MP.
GozuByt3s
HOla no se que pasa pero no puedo pasar ningun reto de ISQL alguien verifica mi respuesta?, se que esta bien pero no la valida ya hice pruebas en local y funciona sin problemas, y estoy seguro que es la solucion mas corta.
g30rg3_x
Buenas,

El problema es que no has leído el enunciado con calma, por lo que por tu respuesta, puedo asegurar que el mini-lab para pruebas que te hiciste esta incorrecto...

Te ampliare el panorama para que veas en que vas mal...

{x} es el lugar donde va a parar tu inyección.
CÓDIGO
SELECT * from diccionario WHERE yrClaves LIKE '%' AND yrClaves LIKE '%{x}%'


Teniendo en cuenta la query anterior, lee este extracto de la descripción del reto...
CITA
...Existe un formulario en el que escribo en una caja de texto las palabras que deseo buscar y desde allí trato de hacer la inyección, pero no he podido hacer que funcione de forma correcta :/, Ya se que la tabla diccionario tiene 4 campos y el script muestra el contenido del 3 y 4...


Sumale a eso tu respuesta probable y seguro que te darás cuenta rápidamente de el error que estas cometiendo...

Saludos
PD: Hay que tener en cuenta que hoy en día este reto es invalido por que se toma en cuenta (implícitamente) que la inyección se esta dando en una versión menor que la 5.1.23 de MySQL (así como la 5.0.50 en la serie 5.0.x).
PD2: Si, pueden tomar el anterior postdata como una pista, aunque a mi gusto es una pequeña recomendación ;).
g30rg3_x
Buenas,

Modifique el reto, añadí la recomendación previamente dada aquí en el foro en la descripción del reto.

Saludos
7370
Que tal pues he intentado replicar el escenario localmente, tengo un servidor corriendo en mi localhost, reconstrui la base de datos en base a la informacion del script y me puse a hacer pruebas, tuve unos problemas y despues de pensarle un poco logre hacer que funcionara mi inyeccion y en la primer columna del table me sale la version de mi mysql, y en el 4º un simple 4.
Trate de mover los menos caracteres posibles y pues no me reconoce la respuesta :( no se que pueda estar pasando, tengo la version de mysql 5.0.41 no se si por ahi vaya el problema y es que funciona para mi version pero no para las que dicen.

Alguna ayuda?
Saludos!!! y excelente pag! heavy.gif
g30rg3_x
Buenas,

Despues de ver con atención la respuesta de HenryByt3s puedo ver que mal interprete la forma en la query debía ejecutarse por lo que aunque su respuesta es correcta esta no es la que esta aceptando el reto.
Ya que esta modificación requiere un cambio mayor tendré que consultar -si se puede- con el autor o bien tendré que llegar a un consenso con los demás admin sobre que hacer.

Saludos
g30rg3_x
Buenas,

Debido a que no pude contactar con el autor original del reto se opto por actualizarlo/reemplazarlo por uno similar.
Este reto no cambia la lógica de la versión original pero si cambia la mecánica del mismo.

A todos los participantes que estaban atascados se les exhorta a intentar de nuevo el reto con esta nueva versión.

Y Por favor si encuentran algún error en esta nueva versión, comuníquense conmigo para resolverlo.

Saludos
neotrons
Hola Disculpa el reto se tiene que resolver en entorno local o puede ser trabajado en el link en el cual han montado el scrip http://www.yashira.org/ReTos/All/167/dicci...?buscar=familia

Gracias
g30rg3_x
Buenas,

Puedes practicar en tu local, pero obviamente la respuesta esta en el script del link...
Pero tmb si gustas puedes practicar en el link, no hay problema.

Saludos
neotrons
Hola Disculpa el reto se tiene que resolver en entorno local o puede ser trabajado en el link en el cual han montado el scrip http://www.yashira.org/ReTos/All/167/dicci...?buscar=familia

Gracias
g30rg3_x
Creo que repitites asi que la hare corta...

Se trabaja desde el script montado en el enlace publicado
g30rg3_x
Buenas,

Actualice el script que valida el reto para corregir un bug reportado por ipbros, que permitía obtener de una manera ingeniosa a través de una inyección a ciegas y fuerza bruta la versión de la BD, esta forma no esta contemplada por la idea original del reto y es un bug introducido por su servidor por lo que a los usuarios a los que hallamos causado molestias de antemano una sincera disculpa por parte de su servidor.

Saludos

PD: La descripción no cambia sigue siendo el mismo objetivo y sigue existiendo la forma a ciegas que encontró ipbros no mas que ahora quedo real o bien mas acorde con el reto...
IsraelSKA
aaahhh!!
Hago la consulta como creo que debería funcionar, pero hay algo que no anda...
Alguna pista actualizada para el reto? ^^.png
g30rg3_x
Buenas,

Pistas? mmmmmm te lo cambio por recomendaciones...

Recomendaciones (al hacer cualquiera inyeccion SQL)...

1) Identifica que te impide inyectar (Filtro? Type-Casting? NIDS?)..
2) Investiga en la documentación otras formas de hacer las querys que necesitas...
3) Prueba en local
4) Si nada sirve fuzzea hasta morir (o bien deja que sqlmap haga su trabajo)...

Saludos
YanPozka
CITA(g30rg3_x @ 16/12/2011 00:57) *
4) Si nada sirve fuzzea hasta morir (o bien deja que sqlmap haga su trabajo)...

Respecto a sqlmap, una pregunta más bien de carácter general, es viable pasarle un sqlmap.py a este tipo de ejemplo de app ??
saludos buen reto -.-.gif
g30rg3_x
Buenas,

CITA(YanPozka @ 04/10/2012 09:53) *
Respecto a sqlmap, una pregunta más bien de carácter general, es viable pasarle un sqlmap.py a este tipo de ejemplo de app ??
saludos buen reto -.-.gif


Mas que viabilidad sugerí esa opción como un ultimo recurso a las recomendaciones que di; sqlmap fue el único ejemplo que encontré, hay varias herramientas por ahí para automatizar o encontrar inyecciones sql (algunas inclusive especializadas para algunos sgbd/dbms), obviamente desconozco la mayoría y de todos modos cada quien tiene sus gustos.
Aunque cabe aclarar que no es necesaria ninguna herramienta solo leer bien la documentación del gestor de base de datos, como les digo a todos: la BD del sistema a atacar no esta escondida úsenla para probar en sus casas o bien ataquen el script a placer...

Saludos
juansebas19
Buenas!!

Una pregunta respecto al reto: he realizado el sql de inyección que creo correcto, puedo jugar con los datos que aparecen en la tabla, pero cuando trato de invocar la versión de mysql, no me aparece nada, como si el resultado fuera null, hago la misma consulta sql en un mysql local y este retorna el resultado esperado.... Ha cambiado algo en la lógica del reto??

Muchas Gracias por su apoyo!!
g30rg3_x
Buenas,

CITA(juansebas19 @ 30/01/2013 09:27) *
Buenas!!

Una pregunta respecto al reto: he realizado el sql de inyección que creo correcto, puedo jugar con los datos que aparecen en la tabla, pero cuando trato de invocar la versión de mysql, no me aparece nada, como si el resultado fuera null, hago la misma consulta sql en un mysql local y este retorna el resultado esperado.... Ha cambiado algo en la lógica del reto??

Muchas Gracias por su apoyo!!


La lógica no ha cambiado es la misma idea de cuando el autor original del reto lo publico, no mas que he limitado el numero de querys posibles como respuesta, sin embargo tu problema es que no te has sentado a observar tu entorno, sugiero te tomes un tiempo y vuelvas a leer toda la descripción del reto, no ataques por atacar si no ataca de manera inteligente.

Saludos
YanPozka
CITA(juansebas19 @ 30/01/2013 15:27) *
... hago la misma consulta sql en un mysql local ...


xxxxxxx
juansebas19
Buen día,

He revisado nuevamente la estructura del código PHP y efectivamente no me había percatado de las últimas validaciones en la respuesta del SQL, así q he optimizado mi inyección para que cumpla dichos condicionales, pero el resultado es el mismo :( , si genero un varchar en el campo me lo devuelve sin problema, pero al tratar de ejecutar el SQL para que me devuelva la versión sigue generando la tabla en null. De todas formas ya llegue al límite de los 39 caracteres.... No sé q puede seguir mal...
g30rg3_x
Buenas,

CITA(juansebas19 @ 31/01/2013 19:31) *
Buen día,

He revisado nuevamente la estructura del código PHP y efectivamente no me había percatado de las últimas validaciones en la respuesta del SQL, así q he optimizado mi inyección para que cumpla dichos condicionales, pero el resultado es el mismo :( , si genero un varchar en el campo me lo devuelve sin problema, pero al tratar de ejecutar el SQL para que me devuelva la versión sigue generando la tabla en null. De todas formas ya llegue al límite de los 39 caracteres.... No sé q puede seguir mal...


Muy dificil darte una mano sin hecharte a perder la diversión del reto...
Pero bueno tomate un tiempo libre fuera del reto o retos, luego vuelve a analizarlo con calma linea por linea, cuando te des cuenta del error que has cometido sera cuestión de segundos pasar el reto.

Saludos
juansebas19
CITA(g30rg3_x @ 02/02/2013 00:35) *
Buenas,



Muy dificil darte una mano sin hecharte a perder la diversión del reto...
Pero bueno tomate un tiempo libre fuera del reto o retos, luego vuelve a analizarlo con calma linea por linea, cuando te des cuenta del error que has cometido sera cuestión de segundos pasar el reto.

Saludos



Jejeje tomaré encuenta la recomendación, gracias!
juansebas19
Sólo una pregunta más: la palabra mágica q no me deja avanzar es -> (String) ??

Gracias por su apoyo!
g30rg3_x
Buenas,

CITA(juansebas19 @ 01/02/2013 21:41) *
Sólo una pregunta más: la palabra mágica q no me deja avanzar es -> (String) ??

Gracias por su apoyo!


No

Saludos
juansebas19
CITA(g30rg3_x @ 02/02/2013 05:34) *
Buenas,



No

Saludos




jajajajajajajajajajajajajaaja sí tenias razón!!! estaba sobrecalentado jajajajajaja lo que necesitaba era respirar y leer bien!!! muchas gracias!
mattnp
Hola,

He estado mirando el foro y veo que se cambió el motor de base de datos de MySQL a SQLite, por lo cual me pregunto si por esta razón no puedo resolver el reto, ya que la función para consultar la versión de MySQL es de 9 caracteres y la de SQLite es de 14. La consulta que estoy haciendo tiene 42 caracteres, y he comprobado que funciona porque consulto con otras funciones de nombres más cortos y retornan correctamente lo que solicito.

Gracias.
g30rg3_x
Buenas,

CITA(mattnp @ 10/08/2017 09:56) *
Hola,

He estado mirando el foro y veo que se cambió el motor de base de datos de MySQL a SQLite, por lo cual me pregunto si por esta razón no puedo resolver el reto, ya que la función para consultar la versión de MySQL es de 9 caracteres y la de SQLite es de 14. La consulta que estoy haciendo tiene 42 caracteres, y he comprobado que funciona porque consulto con otras funciones de nombres más cortos y retornan correctamente lo que solicito.

Gracias.


El cambio de motor de bd no te debe afectar, ya que este cambio lo hice hace poco mas de 6 años y la descripción del reto era 100% teórica, no había un escenario practico al cual "atacar" como lo tienes ahora
En fin tratando de ser corto, sustancialmente el reto no cambio en esencia, la misma idea que el autor quería que vieras sigue siendo el centro de este reto, bien se puede lograr la inyección pese a lo larga de la función para obtener la versión.

Saludos
PD: El record es de 37 caracteres, es lo mas optimizado que puede quedar la inyección (hasta donde se) aunque bien lo normal es que encuentres ya sea la de 39 o 40 caracteres. Suerte!
Esta es una versión -reducida (lo-fi)- de nuestro contenido. Para ver la versión completa con mas información, formato e imágenes, por favor haz click aquí.