SQLMap destaca como una herramienta esencial para hackers éticos y profesionales de pruebas de penetración. Esta guía rápida es la clave para desbloquear el potencial completo de SQLMap. Desde la identificación de vulnerabilidades hasta la explotación de bases de datos, cada aspecto crucial se abordará de manera concisa y efectiva.
¿Te gustaría enterarte de cuando lanzamos descuentos al Máximo o Nuevos Cursos?
Sqlmap es una herramienta de prueba de penetración para inyección SQL (SQLi). Automatiza la detección y explotación de fallas de SQLi y el secuestro del servidor de bases de datos. Esto hace que las pruebas de penetración sean mucho más eficientes, pero la amplia documentación de sqlmap puede hacer que aprender sqlmap sea una tarea desalentadora. Esta guía le ayudará a centrarse en los comandos esenciales.
Además de eso, una vista panorámica de cómo realiza sus pruebas de penetración le ayuda a priorizar sus recursos.
Este articulo es una guía de referencia para los estudiantes de sqlmap en todas las etapas y proporciona una vista panorámica que necesita para desarrollar su estrategia de prueba.
Requisitos del sistema para Sqlmap
sqlmap se ejecuta en Python versiones 2.6, 2.7 y 3 en Windows, macOS y Linux.
De ahora en adelante, simplemente usaremos sqlmap para representar cualquiera de estas opciones:
python sqlmap.py
python3 sqlmap.py
py -2 sqlmap.py
py -3 sqlmap.py
- (Kali Linux)
sqlmap
Comprueba que tienes las versiones correctas de Python instaladas en tu consola usando sqlmap --version
.
Instalar SQLMap
Descargue sqlmap a continuación:
- tarball aquí;
- zipball aquí.
- clonando el repositorio Git:
git clone --depth 1
https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
Este también es el método preferido para actualizar sqlmap en Kali Linux.
La wiki de Git tiene información para usuarios avanzados de sqlmap.
Comprobación de vulnerabilidades SQLi
Cómo utilizar sqlmap en la línea de comando:
sqlmap [mandatory arguments and values required] [options and values where applicable]
Descripción general de los ataques SQLi
Las categorías de ataques SQLi incluyen:
- Dentro de banda
- Fuera de banda
- Inferencial (o ciego)
- Compuesto
In-Band SQLi Attacks – Ataques SQLi en banda (o clásicos)
En los ataques dentro de banda, el atacante puede lanzar el ataque y ver los resultados a través del mismo canal (banda), como a través de una consola o una aplicación web. Las cuatro técnicas de inyección en banda más populares son basada en errores, basada en unión, consultas apiladas y consultas en línea. (opción sqlmap: --technique
)
Error-based injections – Inyecciones basadas en errores
Los mensajes de error que se muestran en la consola o la aplicación filtran información sobre las configuraciones, la estructura y los datos de la base de datos.
Union-based injections – Inyecciones basadas en sindicatos
Utilizando UNION y palabras clave asociadas, el atacante combina los resultados de una consulta legítima con los de un ataque para extraer datos, como por ejemplo hacer coincidir los datos del usuario con el historial de ubicaciones.
Stacked queries (piggybacking) – Consultas apiladas
El atacante envía múltiples declaraciones SQL unidas por un punto y coma en la misma llamada al servidor de la base de datos para cambiar los datos dentro o manipular el servidor.
Inline queries – consultas en línea
Incrustar declaraciones SQL parciales en el backend del lado del servidor hace que el servidor sea vulnerable a SQLi a través de la entrada del lado del cliente.
Out-of-Band SQLi Attacks – Ataques SQLi fuera de banda
Los ataques fuera de banda obtienen datos utilizando un canal (banda) distinto al que realiza la solicitud. Los ejemplos incluyen recibir un correo electrónico que contiene resultados de una consulta y enviar los resultados a un servidor web diferente utilizando una conexión HTTP separada.
Inferential (or Blind) SQLi Attacks – Ataques SQLi inferenciales (o ciegos)
Estos implican cambiar el comportamiento de la base de datos para reconstruir información.
Boolean injections – inyecciones booleanas
Este ataque inferencial involucra expresiones booleanas, como tautologías. Si visita un sitio web de comercio electrónico, puede obtener una página de producto a través de la ruta /product/279, que se traduce en esta cadena de consulta en el backend:
SELECT * FROM products WHERE id='279';
Pero agregue una declaración tautológica a la ruta para obtener /product/279’%20or%201=1:
SELECT * FROM products WHERE id='279' OR 1=1;
Dado que 1=1
debe evaluarse como VERDADERO, puede ver todos los productos independientemente de las limitaciones que les haya impuesto el proveedor, como inventario sin previo aviso o agotado.
Time delay injections (time-based attacks) – Inyecciones de retardo de tiempo (ataques basados en el tiempo)
Este ataque inferencial deja rastros insignificantes de penetración en los registros de la base de datos durante la exploración de una base de datos desconocida. Dichos ataques dependen de que la base de datos se detenga durante un tiempo fijo antes de responder, y el comando de retardo de tiempo inyectado difiere según los lenguajes SQL.
Si la base de datos no es vulnerable a un ataque basado en el tiempo, los resultados se cargarán rápidamente a pesar del retraso de tiempo especificado.
Compound SQLi Attacks – Ataques SQLi compuestos
Los ataques SQLi compuestos se refieren a ataques SQLi más otros ciberataques, como acceso no autorizado, denegación de servicio distribuido (DDoS), servidor de nombres de dominio. (DNS) y secuencias de comandos entre sitios (XSS). Los detalles de los otros ataques están fuera del alcance de esta hoja de trucos.
Argumentos obligatorios
Es necesario al menos uno de los siguientes para que se ejecute el comando sqlmap:
OPERACIONES BÁSICAS | DESCRIPCIÓN |
---|---|
-h | ayuda basica |
-hh | Ayuda avanzada |
--version | Mostrar número de versión de sqlmap |
-v VERBOSE | Establezca nivel de detalle donde VERBOSE es un número entero entre 0 y 6 inclusive (predeterminado: 1)< /span> |
--wizard | Interfaz de asistente simple para usuarios principiantes |
--shell | Solicitar un shell sqlmap interactivo; dentro del shell, omita sqlmap e ingrese opciones y argumentos directamente |
--update | Actualizar sqlmap a la última versión |
--purge | Elimine de forma segura todo el contenido del directorio de datos de sqlmap |
--list-tampers | Mostrar lista de scripts de manipulación disponibles |
--dependencies | Compruebe si faltan dependencias de sqlmap (opcionales) |
OBJETIVO | DESCRIPCIÓN |
-u URL --url=URL | Especifique el objetivo URL , preferiblemente que contenga parámetros de consulta vulnerablesEjemplo: -u "http://www.site.com/vuln.php?id=1" |
-g GOOGLEDORK | Procesa los resultados de Google Dorking como URL de destino: ingresas como consultas de Google Dorking y obtienes resultados de URL en los que ejecutas sqlmap.GOOGLEDORK ejemplos (\ para escapar de las comillas dobles “) :• "inurl:\".php?id=1\"" • 'intext:csrq filetype:"pdf"' El uso excesivo de este comando genera la siguiente advertencia: [CRITICAL] Google has detected 'unusual' traffic from used IP address disabling |
-d DATABASE_STRING | Especifique la cadena de conexión para la conexión directa a la base de datosDATABASE_STRING formato:• “rdbms://user:password@dbms_ip:dbms_port/database_name”< /span>• • ejemplos: • “rdbms://database_filepath” DATABASE_STRING "sqlite:///home/user/testdb" 'mysql://admin:999@127.0.0.1:3306/db1' |
-m /path/to/BULKFILE | Escanee varios objetivos enumerados en un archivo de texto BULKFILE Contenido de muestra BULKFILE :www.target1.com/vuln1.php?q=foobar |
-l /path/to/LOGFILE | Analizar objetivos del archivo de registro de proxy Burp o WebScarabLOGFILE |
-r /path/to/REQUESTFILE | Cargar solicitud HTTP desde un archivo de texto REQUESTFILE Muestra REQUESTFILE contenido:POST /vuln.php HTTP/1.1 |
-c CONFIGFILE.INI | Cargar opciones desde un archivo de configuración (extensión .INI ), útil para ataques complejos |
Opciones generales
Establecer parámetros generales de trabajo.
OPCIÓN | DESCRIPCIÓN |
---|---|
--batch | Nunca solicite información al usuario, use el comportamiento predeterminado |
--answers | Establecer respuestas predefinidas: los parámetros son subcadenas de preguntas; une varias respuestas con una coma. Puedes usar esto con --batch .Uso: --answers="quit=N,follow=N" |
--flush-session | Vaciar archivos de sesión para el objetivo actual |
--crawl=CRAWL_DEPTH | Rastrear (recopilar enlaces de) el sitio web a partir de la URL de destino |
--crawl-exclude=CRAWL_EXCLUDE | Expresión regular para excluir páginas del rastreo (por ejemplo, --crawl-exclude="logout" para omitir todas las páginas que contengan la palabra clave “cerrar sesión”) |
--csv-del=CSVDEL | Carácter delimitador utilizado en la salida CSV (predeterminado “,”) |
--charset=CHARSET | Conjunto de caracteres SQLi ciego (por ejemplo, "0123456789abcdef" ) |
--dump-format=DUMP_FORMAT | Formato de los datos volcados (CSV (predeterminado), HTML o SQLITE) |
--encoding=ENCODING | Codificación de caracteres utilizada para la recuperación de datos (por ejemplo, GBK) |
--eta | Mostrar para cada salida la hora estimada de llegada. |
--flush-session | Vaciar archivos de sesión para el objetivo actual |
--output-dir=OUTPUT_DIR | Ruta del directorio de salida personalizado |
--parse-errors | Analizar y mostrar mensajes de error de DBMS a partir de respuestas |
--preprocess=SCRIPT | Utilice los scripts proporcionados para el preprocesamiento (solicitud) |
--postprocess=SCRIPT | Utilice los scripts proporcionados para el posprocesamiento (respuesta) |
--repair | Redumpir entradas que tengan un marcador de carácter desconocido (indicado por el carácter “?”) |
--save=SAVECONFIG | Guardar opciones en un archivo INI de configuración |
--scope=SCOPE | Expresión regular para filtrar objetivos. |
--skip-heuristics | Omitir la detección heurística de vulnerabilidades |
--skip-waf | Omitir la detección heurística de la protección WAF/IPS |
--web-root=WEBROOT | Directorio raíz de documentos del servidor web (por ejemplo, "/var/www" ) |
Opciones de solicitud
Especifique cómo conectarse a la URL de destino.
OPCIÓN | DESCRIPCIÓN |
---|---|
--data=DATA | Cadena de datos que se enviará mediante POST (por ejemplo, "id=1" ) |
--cookie=COOKIE | Valor del encabezado de la cookie HTTP (por ejemplo, "PHPSESSID=77uT7KkibWPPEkSPjBd9GJjPLGj; security=low" ) |
--random-agent | Utilice el valor del encabezado HTTP User-Agent seleccionado aleatoriamente |
--proxy=PROXY | Utilice un proxy para conectarse a la URL de destino |
--tor | Utilice la red de anonimato Tor |
--check-tor | Verifique si Tor se usa correctamente |
Opciones de optimización
Optimice el rendimiento de sqlmap.
OPCIÓN | DESCRIPCIÓN |
---|---|
-o | Active todos los interruptores de optimización |
--predict-output | Predecir la salida de consultas comunes |
--keep-alive | Utilice conexiones HTTP(s) persistentes |
--null-connection | Recuperar la longitud de la página sin el cuerpo de respuesta HTTP real |
--threads=THREADS | Número máximo de solicitudes HTTP simultáneas (predeterminado 1) |
Opciones de inyección
Especifique los parámetros con los que realizar pruebas, cargas útiles de inyección personalizadas y scripts de manipulación opcionales.
OPCIÓN | DESCRIPCIÓN |
---|---|
-p TESTPARAMETER | Parámetros comprobables (por ejemplo, -p "id,user-agent" ) |
--skip=SKIP | Omitir pruebas para parámetros determinados (por ejemplo, –-skip="referer" ) |
--skip-static | Omitir parámetros de prueba que no parezcan dinámicos |
--param-exclude=PARAM_EXCLUDE | Expresión regular para excluir parámetros PARAM_EXCLUDE de las pruebas (por ejemplo, excluir un parámetro de sesión “ses “) |
--param-filter=PARAM_FILTER | Seleccione los parámetros comprobables PARAM_FILTER por lugar (por ejemplo, “POST “) |
--dbms=DBMS | Forzar el DBMS back-end a utilizar el dado |
--dbms-cred=DBMS_CREDS | Credenciales de autenticación DBMS DBMS_CREDS del formato “user:password “ |
--os=OS | Forzar el sistema operativo DBMS back-end al valor deOS |
--invalid-bignum | Utilice números grandes para invalidar valores |
--invalid-logical | Utilice operaciones lógicas para invalidar valores. |
--invalid-string | Utilice cadenas aleatorias para invalidar valores |
--no-cast | Apague el mecanismo de lanzamiento de carga útil |
--no-escape | Apague el mecanismo de escape de hilo |
--prefix=PREFIX | Cadena de prefijo de carga útil de inyecciónPREFIX |
--suffix=SUFFIX | Cadena de sufijo de carga útil de inyecciónSUFFIX |
--tamper=TAMPER | Utilice secuencias de comandos TAMPER dadas para manipular datos de inyección |
Personalice la fase de detección del análisis de ataques SQL.
OPCIÓN | DESCRIPCIÓN |
---|---|
--level=LEVEL | Nivel de pruebas a realizar (LEVEL toma números enteros del 1 al 5, por defecto 1) |
--risk=RISK | Riesgo de las pruebas a realizar (RISK toma números enteros del 1 al 3, por defecto 1) |
--string=STRING | Cadena que debe coincidir cuando la consulta devuelve Verdadero |
--not-string=NOT_STRING | Cadena que debe coincidir cuando la consulta devuelve Falso |
--regexp=REGEXP | Expresión regular que debe coincidir cuando la consulta devuelve Verdadero |
--code=CODE | Código HTTP para que coincida cuando la consulta devuelve Verdadero |
--smart | Realice pruebas exhaustivas sólo si las heurísticas son positivas. |
--text-only | Comparar páginas basándose únicamente en el contenido textual. |
--titles | Comparar páginas basándose únicamente en sus títulos. |
Opciones de técnicas
Pruebas de ajuste de técnicas SQLi específicas.
OPCIÓN | DESCRIPCIÓN |
---|---|
--technique=TECHNIQUE | Técnicas SQLi a utilizar (el valor predeterminado “BEUSTQ ” se explica a continuación)• B: Ciega basada en booleanos• E: Basado en errores• U: Basado en consultas de unión• S: Consultas apiladas• T: Ciegas basadas en el tiempo• Q: Consultas en línea |
--time-sec=TIMESEC | Segundos para retrasar la respuesta del DBMS (predeterminado 5) |
--union-cols=UCOLS | Rango de columnas para probar la consulta UNION SQLi |
--union-char=UCHAR | Carácter a utilizar para adivinar el número de columnas por fuerza bruta |
--union-from=UFROM | Tabla para usar en la parte FROM de la consulta UNION SQLi |
--dns-domain=DNSDOMAIN | Nombre de dominio utilizado para el ataque de exfiltración de DNS |
--second-url=SECONDURL | URL de la página resultante buscada para respuesta de segundo orden |
--second-req=SECONDREQ | Cargar solicitud HTTP de segundo orden desde un archivo |
Opción de huella digital
Evaluar una base de datos antes de atacarla.
OPCIÓN | DESCRIPCIÓN |
---|---|
-f, --fingerprint | Realice una huella digital exhaustiva de la versión DBMS |
Ejecución de un análisis de ataques SQLi con Sqlmap
Tres pasos básicos subyacen a un análisis de ataque SQLi:
- Realizar un reconocimiento en una base de datos utilizando argumentos objetivo obligatorios y toma de huellas dactilares.
- Descubra vulnerabilidades potenciales enumeración del contenido de la base de datos.
- Ejecute pruebas de diferentes ataques SQLi para determinar el alcance de estas vulnerabilidades.
Repita los pasos 2-3 hasta su satisfacción.
Obtenga una lista de bases de datos en su sistema y sus tablas
Utilice opciones de enumeración para escanear bases de datos SQL. Para obtener una lista de bases de datos en su sistema, use --dbs
. Para las tablas y su esquema, utilice --tables
, --schema
y --columns
.
A continuación se muestra un ejemplo de cómo explotar una vulnerabilidad en el parámetro id en una sesión de cookies determinada para devolver las tablas de la base de datos (--tables
) utilizando respuestas predeterminadas a los mensajes (--batch
):
sqlmap -u "http://sometestdb.to/view?id=123&Submit=Submit#" --cookie="PHPSESSID=e3f9231953973ace4acb63cfde2ccc08; security=low" --tables --batch
Para limitar el exploit a la columna de usuarios, utilice la opción --columns
seguida de -T
y el nombre de la tabla deseada:
sqlmap -u "http://sometestdb.to/view?id=123&Submit=Submit#" --cookie="PHPSESSID=e3f9231953973ace4acb63cfde2ccc08; security=low" --columns -T users --batch
Opciones de enumeración
Estas opciones se pueden utilizar para enumerar la información de configuración, la estructura y los datos contenidos en las tablas del sistema de gestión de bases de datos de destino.
OPCIÓN | DESCRIPCIÓN |
---|---|
-a, --all | recuperar todo |
-b, --banner | Recuperar banner DBMS |
--current-user | Recuperar usuario actual de DBMS |
--current-db | Recuperar la base de datos actual DBMS |
--dbs | Enumerar bases de datos DBMS |
--exclude-sysdbs | Excluir las bases de datos del sistema DBMS al enumerar tablas |
--users | Enumerar usuarios de DBMS |
--passwords | Enumerar hashes de contraseñas de usuarios de DBMS |
--tables | Enumerar tablas de bases de datos DBMS |
--columns | Enumerar las columnas de la tabla de la base de datos DBMS |
--schema | Enumerar el esquema DBMS |
--count | Recuperar el número de entradas para la(s) tabla(s) |
--dump | Volcar (salida) entradas de la tabla de base de datos DBMS |
--dump-all | Volcar todas las entradas de las tablas de bases de datos DBMS |
-D DB | Base de datos DBMS para enumerar |
-T TBL | Tabla(s) de base de datos DBMS para enumerar |
-C COL | Columnas de la tabla de base de datos DBMS para enumerar |
-X EXCLUDE | Identificadores de bases de datos DBMS que no se enumerarán |
-U USER | Usuario DBMS para enumerar |
Opciones de fuerza bruta
Adivine si la base de datos contiene nombres comunes para tablas, columnas y archivos.
OPCIÓN | DESCRIPCIÓN |
---|---|
--common-tables | Comprobar existencia de tablas comunes |
--common-columns | Comprobar existencia de columnas comunes |
--common-files | Comprobar existencia de archivos comunes |
Descifrar contraseñas con Sqlmap
Método sencillo
Esto requiere permisos de lectura en la base de datos de destino. En este caso, podría enumerar los hash de contraseña para cada usuario con la opción --passwords
. sqlmap primero enumerará los usuarios y luego intentará descifrar los hashes de contraseña.
Método indirecto
Si su base de datos de destino es lo suficientemente vulnerable, puede buscar una tabla que contenga datos de usuario (por ejemplo, users
) porque es probable que las contraseñas residan allí.
Una vez que sqlmap descubre una columna de contraseñas, le pedirá permiso para descifrar las contraseñas, seguido de un mensaje sobre si desea descifrarlas o no mediante un ataque basado en diccionario. Si las contraseñas son lo suficientemente inseguras, una “Y” en ambas indicaciones generará contraseñas de salida significativas.
Estructura del código fuente de Sqlmap y cómo navegar por él
Vea el código fuente de sqlmap aquí en GitHub. Haga clic aquí para obtener una versión en alta resolución del diagrama.
Directorios Sqlmap importantes y útiles
Puede personalizar su experiencia con sqlmap agregando o editando archivos en los siguientes directorios. Los enlaces de GitHub hacen referencia a directorios que se encuentran en el código fuente de sqlmap.
DIRECTORIO | CONTENIDO |
---|---|
/sqlmap.conf | Valores predeterminados para todas las opciones que requieren valores predeterminados para funcionar. Los valores indicados en los comandos emitidos por la terminal tienen prioridad sobre los valores en este archivo .conf. |
/data/xml/payloads | Cargas útiles de SQLi, implementadas según los valores del usuario de --level y --risk |
/data/txt | Cadenas de texto utilizadas para adivinar nombres de columnas y contraseñas (ataques basados en diccionarios) |
/tamper | Guiones de manipulación |
/output/ | Resultados de los comandos sqlmap que devuelven valores de base de datos como --dump .Si usa Kali Linux, este directorio está en /home/kali/.local/share/sqlmap/output/ .De lo contrario, la salida del terminal sqlmap especificará esta ubicación en un [INFO] mensaje. |
/history/ | Historial de comandos emitidos en un shell sqlmap (--shell ).Si usa Kali Linux, este directorio está en /home/kali/.local/share/sqlmap/history . |
Niveles de prueba y su impacto en sus comandos
Compruebe su base de datos contra ataques SQLi particulares estableciendo valores de prueba --level
para dictar el volumen de pruebas a realizar y el grado de retroalimentación de sqlmap.
--LEVEL VALORES | DESCRIPCIÓN |
---|---|
1 (por defecto) | Un número limitado de pruebas/solicitudes: GET y POST los parámetros se probarán de forma predeterminada |
2 | Cookies de prueba (valores del encabezado de la cookie HTTP) |
3 | Cookies de prueba más valores de encabezados HTTP User-Agent/Referer |
4 | Como arriba, más valores nulos en los parámetros y otros errores |
5 | Una lista extensa de pruebas con un archivo de entrada para cargas útiles y límites. |
Las cargas útiles de SQLi de sqlmap suelen ser inofensivas, pero si desea probar su base de datos hasta el punto de ruptura, --risk
es la opción que debe utilizar:
--RISK VALORES | DESCRIPCIÓN |
---|---|
1 (por defecto) | Los datos permanecen sin cambios y la base de datos permanece operativa |
2 | Incluir ataques SQLi intensos basados en el tiempo de consulta, que pueden ralentizar o inutilizar la base de datos. |
3 | Como se indicó anteriormente, además de pruebas SQLi basadas en OR, cuya carga útil puede actualizar todas las entradas de una tabla y causar estragos en los entornos de producción. |
Niveles de detalle
Estos niveles enteros (0-6) son para solucionar problemas y ver qué está haciendo sqlmap bajo el capó.
NIVEL DE VERBOSIDAD | DESCRIPCIÓN |
---|---|
0 | Mostrar solo rastreos, errores y mensajes críticos de Python |
1 (por defecto) | Mostrar también mensajes de información y advertencia |
2 | Mostrar también mensajes de depuración |
3 | Mostrar también cargas útiles inyectadas |
4 | Mostrar también solicitudes HTTP |
5 | Mostrar también respuestas HTTP’ encabezados |
6 | Mostrar también respuestas HTTP’ contenido de página |
Scripts de manipulación y sus acciones
Los scripts de manipulación sirven para eludir los controles de seguridad, como Firewalls de aplicaciones web (WAF) e Intrusión. Sistemas de Prevención. Hay al menos 60 secuencias de comandos predeterminadas, pero puedes agregar otras personalizadas.
Comandos útiles de script de manipulación:
OPCIÓN | DESCRIPCIÓN |
---|---|
--list-tampers | Enumere todos los scripts de manipulación en el directorio sqlmap |
--tamper=TAMPERS | Invocar secuencias de comandos de manipulación TAMPERS de tu elección Ejemplos: --tamper="random,appendnullbyte,between,base64encode |
Las acciones predeterminadas del script de manipulación se dividen en cuatro categorías:
ACCIÓN | SCRIPTS DE MANIPULACIÓN A PARTIR DE LA VERSIÓN 1.6.8.1#DEV DE SQLMAP |
---|---|
Reemplazo | 0eunion, apostrophemask, apostrophenullencode, between, bluecoat, commalesslimit, commalessmid, concat2concatws, dunion, equaltolike, equaltorlike, greatest, hex2char, ifnull2casewhenisnull, ifnull2ifisnull, least, lowercase, misunion, ord2ascii, plus2concat, plus2fnconcat, randomcase, sleep2getlock, space2comment, space2dash, space2hash, space2morecomment, space2morehash, space2mssqlblank, space2mssqlhash, space2mysqlblank, space2mysqldash, space2plus, space2randomblank, substring2leftright, symboliclogical, unionalltounion, unmagicquotes, uppercase |
Suma | halfversionedmorekeywords, informationschemacomment, multiplespaces, percentage, randomcomments, appendnullbyte, sp_password, varnish, xforwardedfor |
Ofuscación | base64encode, binary, chardoubleencode, charencode, charunicodeencode, charunicodeescape, commentbeforeparentheses, escapequotes, htmlencode,modsecurityversioned, modsecurityzeroversioned, overlongutf8, overlongutf8more, schemasplit, versionedkeywords, versionedmorekeywords |
Derivación | luanginx (Omisión de WAF de UA-Nginx (por ejemplo, Cloudflare)) |
Esperamos que esta hoja de referencia de sqlmap haga de sqlmap una experiencia más agradable para usted. Para descargar una versión PDF de esta hoja de referencia de sqlmap, haga clic aquí.
Preguntas frecuentes
¿Para qué se utiliza sqlmap?
El propósito de sqlmap es realizar pruebas de penetración. Automatiza la detección y explotación de fallas y vulnerabilidades de SQLi de los servidores de bases de datos.
¿Se pueden rastrear los ataques SQLi?
Con las configuraciones predeterminadas de sqlmap, sí, los atacantes son rastreables. Sin embargo, invocar opciones de enmascaramiento, como usar la configuración –tor para canalizar el tráfico web a través de Tor, hace que sea más difícil descubrir al perpetrador.
¿Qué son “nivel” y “riesgo” en sqlmap?
Ambas son clasificaciones: –level sobre los tipos de pruebas que realiza sqlmap; –riesgo en las cargas útiles de sqlmap. Cuanto mayor sea el nivel de prueba, más solicitudes envía sqlmap. Mientras tanto, los tres niveles de riesgo corresponden al grado de destrucción de la base de datos de destino.
¿Qué es “rastreo” en sqlmap?
Rastrear un sitio web de destino es recopilar sus enlaces y contenidos.
¿Cómo se puede utilizar sqlmap para encontrar una vulnerabilidad en un sitio web?
Repita los pasos 2 y 3 hasta su satisfacción. para determinar el alcance de estas vulnerabilidades.ataques SQLi3. Ejecute pruebas de diferentes .enumeración del contenido de la base de datos.huellas dactilares y argumentos de destino obligatorios
¿Cómo se puede prevenir SQLi?
Asegúrese de que las entradas del usuario sigan formatos válidos (validación de entrada) y elimine o escape los caracteres no válidos (datos desinfección). Aplique declaraciones preparadas para que las cadenas de consultas SQL maliciosas no sean ejecutables. Establezca los privilegios de usuario según la necesidad de saber. Mantenga mensajes de error no específicos (por ejemplo, “Nombre de usuario o contraseña incorrectos”). Invalidar URL largas.
¿Cuánto tiempo tarda sqlmap en ejecutarse?
Lleva de minutos a horas, dependiendo de la complejidad del comando, especialmente el nivel de prueba y los niveles de riesgo, y el tamaño de la base de datos. Las marcas de tiempo en las salidas del terminal sqlmap pueden ayudarle a llegar a estimaciones de tiempo de ejecución razonables.
Conclusión
Al concluir este artículo, has desglosado las complejidades de Sqlmap, comprendido sus comandos avanzados y explorado sus funciones más potentes. Ahora, estás mejor equipado para enfrentar desafíos de seguridad en bases de datos y fortalecer las medidas de protección. Recuerda siempre aplicar estos conocimientos con responsabilidad y ética en tu labor como profesional de ciberseguridad.
Pentesting Web. Prácticas de un Ethical Hacker Profesional.
El Pentesting Web se enfoca principalmente en aplicaciones y paginas funcionando en internet. Esto genera que su demanda laboral sea además de muy alta, sumamente importante.
La gran ventaja de esta profesión es que efectivamente, puedes llevarla adelante desde cualquier parte del mundo, con una computadora e internet.
Nosotros te brindaremos los fundamentos teóricos y la base necesaria para que empieces desde 0, y vayas avanzando hacia el ámbito profesional, con laboratorios simulando entornos reales
Hemos creado esta formación profesional donde aprenderás todo lo que necesitas para ser un experto, y con practicas que podrás aplicar en escenarios reales.
Contaras con nuestra supervisión, experiencia y respuesta a todas tus preguntas que tengas sobre el contenido. Así también sobre las actualizaciones que hagamos sobre el curso, el cual será tuyo de por vida y recibirás dichas actualizaciones sin tener que volver a pagar.
Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.700.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma.
Y junto a mi compañero el profesor Walter Coto donde con él hemos dictado formaciones profesionales en conjunto también en la plataforma de Udemy, el cuenta con más de 330.000 Estudiantes y hoy les traemos esta oportunidad de seguirse formando en hacking ético en entornos Web.
Tendrás acceso de por vida al curso, recibirás actualizaciones y respuestas a tus preguntas a través de la plataforma de Udemy.
Empieza a aprender ya mismo!
Lo que aprenderás
- Hacking Ético Web
- El TOP 10 Vulnerabilidades Web de OWASP
- Uso de Burp Suite
- Identificar Vulnerabilidades Web
- Explotar Vulnerabilidades Web
- Identificar Vulnerabilidades que NO son de OWASP TOP 10
- Prácticar con Escenarios Reales de Hacking Web
- Las 5 Fases del Pentesting Web
Aprende Pentesting Web, Hacking Ético y Ciberseguridad. Practicas reales y aprender todo sobre Vulnerar entornos Web: https://achirou.com/pentesting-web