Instructor: En todas
las conferencias hasta ahora, estábamos explotando inyecciones SQL manualmente.
Así que estábamos inyectando el código en la URL
o en los cuadros de texto.
En este video, le mostraré una herramienta llamada sqlmap que le
permite hacer todo lo que aprendimos hasta ahora e
incluso más cosas.
Esta herramienta se puede usar contra bases de datos
MySQL en las que teníamos el ejemplo.
También se puede usar contra Microsoft SQL,
Oracle y otros tipos de bases de datos.
La herramienta es muy útil y es muy útil en muchos casos.
A veces las inyecciones no son tan buenas como la
que hemos visto.
A veces solo obtienes una salida para cada registro
y tienes que recorrer todas las salidas.
Entonces, la herramienta puede automatizar eso
y simplemente hacer todo por usted mucho más fácil y mucho más simple.
Entonces, antes que nada, obtengamos la
URL que estábamos usando para la inyección.
Así que tengo ese archivo de texto aquí que estábamos usando
y tengo la URL que estábamos usando antes.
Entonces es el usuario. info. php,
el nombre de usuario es admin, contraseña, adminpass.
Realmente no necesitas saber el nombre de usuario
y la contraseña, así que en realidad solo voy a poner algo aquí.
Entonces, para suponer que no
conocemos la contraseña, solo estamos inyectando inyecciones SQL.
Realmente no necesitamos saber nada de esto.
Todo lo que haré es
copiar esto y luego ejecutaré sqlmap.
Y voy a hacer que especifiques la URL
y pondré mi objetivo.
Y
me aseguraré de tenerlo entre dos comillas para
que no ignore nada, ningún signo
en el medio, así que
tenemos algunos signos y caracteres en el
medio que quiero que todos se traten como uno URL
Así que todo lo que hice fue sqlmap -u mi objetivo.
Y presionaré Enter
y la herramienta buscará automáticamente los parámetros, así que
revisará la información del usuario, el nombre
de usuario y la contraseña para ver
si alguno de ellos es inyectable y luego,
una vez que lo haga,
lo almacenará en su memoria
Entonces sabrá que esto
es inyectable y luego podremos explotar aún más el objetivo.
Como puede ver
ahora, está pensando que nuestro objetivo podría ser MySQL o PostgreSQL.
Me pregunta si debería omitir otras pruebas y voy a decir
que sí
porque sé que es MySQL.
¿Y ahora me pregunta si debería hacer todas las pruebas para
ambas bases de datos?
Y voy a decir que sí, suponiendo que no
estoy seguro de cuál es.
Sé que es MySQL, pero dejaré que haga lo suyo
y veremos si puede hacerlo correctamente o no.
Entonces, en
este momento, está comprobando si es PostgreSQL.
Y supongo que sabrá que no es así
y luego sabrá que es MySQL.
Simplemente descubrió que el nombre de usuario
parece ser inyectable.
Y efectivamente, aquí nos dice que el
nombre de usuario del parámetro es vulnerable y que
podemos inyectarlo.
Entonces me pregunta si quiero verificar los otros parámetros,
como la contraseña y todos ellos.
Puedo decir que sí y dejar que lo
haga, pero voy
a decir que no porque no me importa si solo usa el
nombre de usuario para la inyección, así que todo está bien.
Ahora, sqlmap sabe que el objetivo es inyectable y sabe que
usará el parámetro de nombre de usuario para
inyectar cosas.
Y puedo ver que descubrió que
está ejecutando Linux Ubuntu y descubrió que está usando PHP
con Apache 2. 2) 8)
Y está usando MySQL Server como el servidor de base de datos.
Entonces, ejecutemos sqlmap --help y veamos qué podemos
hacer ahora.
Ahora, esta herramienta es realmente
grande y te permite hacer muchas cosas.
Entonces, en este video, en realidad
solo voy a mostrarle
un vistazo rápido y le recomiendo que pase más tiempo con él
e intente ver qué más puede hacer con él.
Bien, intentemos obtener el usuario actual e intentaremos
obtener la base de datos actual.
Así que usaremos el mismo comando
que usamos antes y solo agregaré dbms para obtener las bases
de datos actuales.
O dbs, lo siento.
Como puede ver, tenemos todas las bases de datos que tenemos.
Entonces tenemos dvwa, tenemos información_esquema, metasploit,
mysql, owasp10, que era
el que estábamos explotando antes y tikiwiki.
Ahora, si lo hacemos como usuario actual, puede ver
que somos root y si
lo hago con la base de
datos actual, veremos que owasp10 es nuestra base de datos actual.
Así que ahora intentemos obtener las
tablas para owasp10, así que recuerde cuándo seleccionamos un nombre de
tabla de esquema_de_información. tablas
donde table_schema es igual a owasp10.
Vamos a hacer, vamos a dejar que sqlmap haga
todo eso por nosotros y entonces el comando
será, vamos a pedirle que nos traiga todas las tablas.
Y usaremos la
opción D para especificar la base de datos
y nuestra base de datos se llamará owasp10.
Y como puedes ver, nos dio todas
las tablas que existen y recuerda, es lo mismo.
También tenemos cuentas, tablas
de blogs y tarjetas de crédito.
Y ahora si queremos
obtener las columnas, entonces podemos usar
el mismo comando nuevamente y vamos a decir que
me den las columnas donde la tabla se llama cuentas
y la base de datos es owasp10.
Y aquí mismo podemos ver que tenemos las columnas.
Entonces tenemos el is_admin, la contraseña y el nombre de usuario
y podemos obtener los
datos usando la opción de volcado.
Entonces es el mismo comando que usamos antes.
Así que estamos obteniendo el de la tabla que se llama cuentas y
la base de datos que se llama owasp10.
Quiero que me obtengas todos los datos.
Y aquí vamos, tenemos todos los datos.
Tenemos el administrador, su contraseña, adminpass
y tenemos a adrian y su contraseña es alguna contraseña.
Y tenemos todos los datos aquí.
Entonces, como dije, la herramienta es muy útil.
Se puede usar para hacer nuestra vida mucho más
fácil y hace todo automáticamente y puede
hacer todo lo que hicimos e
incluso puede hacer más cosas.