Bienvenidos a esta nueva clase en la cual estaremos hablando acerca de la herramienta llamada SQL Map.
Para ello vamos a hacer nuestra práctica en la página de ABC Yourself First.
Bueno, y resulta que esta página que ustedes leen por acá es una página que ustedes podrán encontrar
en algún otro lado con algunas vulnerabilidades, obviamente no con todas las vulnerabilidades que vamos
a descubrir a lo largo del curso, pero sí que con algunas de éstas, porque incluso pueden ver de que
hay implementación de HTTPS y eso está haciendo una especie de esfuerzo por garantizar seguridad en
la página.
Pero bueno, continuemos.
Entonces, qué es lo que podríamos hacer ahorita para buscar inyecciones?
Se cuele buscar algún campo en donde yo pueda ingresar datos y probar la prueba de la comida simple
para ver si hay inyección SQL basada en error.
Por ejemplo, acá escribí una comida simple y me devolvió eso.
Se colocó.
Uno me devuelve estas cosas.
Pero estoy viendo que no hay error como la vez pasada.
Entonces puede que este campo no sea vulnerable.
Podríamos probar a ver si ocurre algo a Carlsen al insertar comida simple.
Solamente nos dice que el correo es inválido.
Tal vez si algo como arroba juntocon y una comida simple.
Ahora si dice que no, el correo sigue siendo inválido si borramos la comida.
Entonces, como podemos ver, este campo ha sido diseñado para que no pueda insertar aquí una comida
simple, excelente.
Entonces sigamos buscando algún otro campo aparte de registro.
Podríamos intentar ver si ocurre algo cuando manda una comida simple por acá, pero lo dudo mucho.
Eso no suele pasar.
Veamos que tenemos de este lado.
Ordenar resultados.
Por acá podemos ver que hay una especie de consulta SQL de ordenar por y podemos ver qué ocurre si mandan
una comida simple.
Dice que hay error si probamos una comida sin placa.
No pasa nada y si en ambos lados tampoco pasa nada.
Si tenemos un error, pero no un error como el que obtuvimos cuando hacíamos las pruebas pasada.
Entonces sigamos buscando otros campos que puedan ser vulnerables.
Deberíamos probar por acá?
No, como pueden ver, acá hay otra gente que está practicando inyección SQL.
Ahora sigamos viendo algún campo.
Veamos acá.
Aquí tenemos nuevamente una especie de consúltese QR.
Podríamos probar insertarla comilla simple.
Como pueden ver a casi obtengo algo.
Podría ser, entonces se ql basado en error, pero que lo que ocurre, la manera en la que esto está
funcionando no me conviene porque estoy ocupando un ordenar por y difiere un poco del caso que estuvimos
estudiando antes.
Así que sigamos buscando algo un poco más accesible.
Veamos por acá tenemos esto.
Aquí tenemos un parámetro.
Qué ocurre si lo cambio por un nuevo?
Al parecer no existe algo que sea un B9, con cuatro tampoco.
Probemos con la comida simple y si obtenemos un error.
Y esto sí parece más a lo que estábamos haciendo antes, porque ahora es como la práctica anterior no
ingresaba un número y obtenía un resultado.
Entonces se parece mucho al ejemplo que estuvimos trabajando en el pasado.
Por tanto, vamos a trabajar con esto para ir a atacar con ese GoogleMaps.
Y lo que quiero recalcar de esto es que si ustedes están haciendo una prueba de penetración a una aplicación
web, ustedes tienen que empezar a testear toda la entrada.
También las peticiones tienen que ver si las peticiones no hay parámetros inyectables, como el ejemplo
del video pasado.
Y bueno, ya vieron más o menos como el intentar descubrir la vulnerabilidad de ese QBE en inyeccion,
así que es hora de pasar a la acción.
Habrá mucho de la nueva terminal y vamos a llamar a ese cubela Mapp.
Ahora vamos a ocupar menos para pegar por acá la R.L.
Luego abrimos Comillas y cerramos comillas aquí.
Le voy a especificar qué parámetro quiero que probando y el parámetro va a ser este sin interés.
Entonces voy a escribir, eso sí, de venderse.
Luego lo otro que voy a hacer es decirle que quiero, que me muestra la base de datos que se encuentran
acá.
Posterior a eso voy a pasar a otra opción.
Esta opción de acá es para que ese Cubela no me haga ninguna pregunta, sino que él tome la mejor decisión.
Si nosotros hiciéramos el proceso a mano nos va a hacer algunas preguntas cómo te gustaría hacer este
tipo de ataque o te gustaría hacer tal cosa?
Y van a ver que se cuela?
Siempre le brinda una sugerencia de lo que deberían hacer entonces para automatizar el proceso?
Vamos a dejar ir esto con la opción de menos batch.
Vamos a presionar enter.
Ha comenzado el ataque, puedan ver que aquí está empezando a hacer su magia.
Dice que el parámetro sin endeudarse podría ser inyectable y dice que posiblemente la base de datos
Microsoft SQL Server.
éL ahorita lo que está haciendo es buscar un payload y a qué me refiero con buscar un payload.
No sé si recuerdan que anteriormente nosotros hacíamos algo como Unión y luego al CELE y el resto de
cosas.
Entonces él está probando con sentencias de este tipo, está probando muchas sentencias al mismo tiempo
para ver qué tipo de sentencias pueden vulnerar la base de datos.
Ahora, mientras esto termina de cargar, sigamos haciendo pruebas por acá.
Qué les parece?
Si vamos a escribir 12 y esta vez pasamos de la comida simple, podemos ver de qué está el error perfecto
y qué pasaría si hacemos el uno igual a uno.
Podemos ver que sigue ocurriendo el error.
Entonces tal vez es necesario que hagamos un comentario como en la ocasión pasada ocupó este símbolo.
Entonces vamos a hacer comida o uno igual a uno y probemos a comentar con doblegue, porque cuando leía,
porque a ese Cubela Emab a mí me había dicho por acá que estábamos trabajando con Microsoft, SQL Server
y SQL Server.
Nosotros hacemos comentarios con esto.
Fíjense que acá tengo cuatro resultados.
Vamos a ver si al hacer esto nos devuelve más.
Excelente, como pueden ver, obtenía absolutamente todos los carros que eran posibles, o al menos
eso parecen.
Entonces, otra cosa que me gustaría mostrarle es lo importante también y los errores.
Si yo paso, estoy acá.
Que por aquí me dice que hay un problema porque no se ha cerrado uno de estos signos y es lo que le
explicaba en el primer ataque que hicimos.
De que hay una pareja que se abre y se cierra.
Pero quedaba una abierta y como había una comida abierta, entonces tenían un error.
Continuamos con el ataque SQL Mata.
Pueden ver que por acá ya encontró algunos payload.
Eso quiere decir que si yo intento ingresar esto, voy a obtener información posiblemente confidencial
acerca de la base de datos, información sensible a qué otro piloto que podría ser y a que haya un tercer
piloto.
Ahora lo que vamos a hacer es intentar sacar información de las bases de datos, como pueden ver aquí.
Nos dice que hay tres bases de datos disponibles.
Nosotros vamos a sacar información de ésta que la base de datos del sitio web.
Entonces, ahora lo que voy a hacer yo es agregar por acá menos de mayuscula y el nombre de mi base
de datos.
Voy a copiar esto lo voy a pegar por acá en Thermo, a esperar a ver.
Bueno.
Me hace falta especificar algo más.
Quiero trabajar con esta base de datos, pero ahora necesito que me den información acerca de las tablas
de la base de datos.
Ahora sí vamos a ver algo distinto, como pueden ver aquí ya está sacando información acerca de las
diferentes tablas que hay en la base de datos.
Y en total, en esta base de datos nosotros tenemos once tablas genial.
Entonces, qué les parece si intentamos sacar información acerca de la tabla supercar?
Nosotros podríamos hacer lo siguiente.
Ahora vamos a pasar un menos de mayuscula y ocupar el nombre de la tabla.
Llegamos y ahora quiero enumerar las columnas que hay dentro de esta tabla, como pueden ver, hay bastantes
columnas, siguen saliendo más columnas aún, vamos a seguir esperando a que terminen de cargar todas
y acá las tenemos ahí.
En total doce columnas para que el nombre de la columna y a la derecha tenemos el tipo de datos que
se almacenan en cada columna.
Ahora, si nosotros queremos sacar información sobre ciertas columnas en específico, podemos hacer
lo siguiente ocupar menos se mayuscula y vamos a escribir por acá en nombre de las columnas.
Por ejemplo, quiero información sobre esta columna.
Información sobre esta otra.
Y voy a pedir información sobre esta otra columna de acá.
Cierro las comillas y ahora voy a pasar fumando.
Y con esto lo que estoy diciendo es que quiero que me saquen la información que hay guardada dentro
de esta base de datos y dentro de la base de datos, esta tabla y la tabla, esta columna en específico
decir que presionamos.
Vamos a ver que ahora haber una tabla con información, no solamente con nombres de cosas como lo hemos
visto ante.
Como pueden ver aquí, acabo de obtener una tabla, aquí tengo los cilindros, aquí tengo los supercar
ídish y por aquí tengo otra información.
No estoy muy claro de que sea esta información, pero sí una de las columnas que nosotros mandamos a
pedir.
Entonces ahora ya han visto como utilizar ese MAP, le invito a que ustedes traten de jugar un poco
más con el resto de tablas para que se acostumbren a esta metodología y vean que otro tipo de información
pueden obtener de acá.
Y lo importante de este video ha sido que a pesar de que una aplicación web trate de sanear algunas
entradas, va a haber un gran problema.
Es hay una entrada que no se saneó correctamente.
Entonces este escenario algo realista, porque si ustedes van a intentar hacer una auditoría a una aplicación
web, puede que hayan probado ya una disposición en las cuales puedan ingresar datos y quizá ya la última
posición lograron encontrar algo vulnerable inyección SQL.
Así es esto, pero que haya gustado la clase y en el próximo vídeo estaremos viendo cómo podemos ocupar
inyección SQL para poder acceder al panel de administrador.
Lo veo en la proxima clase.