Confirmar Privilegios de DBA y Permisos de Lectura de Archivos
En este paso, simularemos un escenario en el que ha identificado una vulnerabilidad de inyección SQL y ahora está utilizando sqlmap para evaluar los privilegios del usuario de la base de datos. Para leer archivos arbitrarios del servidor, el usuario de la base de datos generalmente necesita privilegios de DBA (Administrador de Base de Datos) o permisos específicos de lectura de archivos. Utilizaremos sqlmap para verificar si el usuario de la base de datos actual tiene estos privilegios elevados.
Primero, asumamos que tiene una URL vulnerable. Para este laboratorio, utilizaremos una URL de marcador de posición. Reemplace http://example.com/vulnerable?id=1 con su objetivo real si está realizando esto en un entorno de prueba real.
Para verificar los privilegios de DBA, use la bandera --is-dba con sqlmap:
sqlmap -u "http://example.com/vulnerable?id=1" --is-dba
Nota: En un escenario real, sqlmap primero detectaría la inyección SQL y luego procedería a verificar los privilegios de DBA. Para este laboratorio, nos centraremos en el aspecto de lectura de archivos, por lo que asumiremos que sqlmap ya ha encontrado un punto de inyección.
Si la salida indica [INFO] current user is DBA: True, entonces el usuario tiene privilegios de DBA, lo que a menudo implica la capacidad de leer archivos.
A continuación, para verificar los permisos de lectura de archivos, puede usar la bandera --file-priv:
sqlmap -u "http://example.com/vulnerable?id=1" --file-priv
Este comando intentará determinar si el usuario de la base de datos tiene los privilegios necesarios para leer y escribir archivos en el sistema de archivos. Si la salida muestra [INFO] current user has FILE privilege: True, es probable que pueda proceder a leer archivos.
Salida de ejemplo (simulada):
_
___| |_____ ___ ___ ___ {1.7.10#stable}
|_ -| . | | . | . |
|___|_|___|_|_|_ |_|___| V
|_| http://sqlmap.org
[INFO] starting @ 12:34:56 /2023-10-26/
[INFO] fetched data: 'True'
[INFO] current user is DBA: True
[INFO] fetched data: 'True'
[INFO] current user has FILE privilege: True
[INFO] shutting down @ 12:34:57 /2023-10-26/
Esta salida confirma que el usuario de la base de datos tiene privilegios de DBA y FILE, lo que hace posible la lectura de archivos arbitrarios.