Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
bbqsql — Herramienta de Explotación de Inyección SQL | Kitploit
Herramientas/GitHubGitHub/ciscocxsecurity/bbqsql
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubciscocxsecurity/bbqsql

bbqsql

Herramienta de Explotación de Inyección SQL

Ver Repositorio
82619622hace 7 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

#BBQSQL# Una herramienta de explotación de inyección SQL ciega

Tabla de Contenidos

  • ¿Qué es BBQSQL?
  • Resumen del Readme
  • Uso de Alto Nivel
  • Instalación
  • Opciones de BBQSQL
  • Resumen de Sintaxis de Consulta
  • Parámetros HTTP
  • Exportar Configuración
  • Importar Configuración
  • Hooks Personalizados
  • ¿Encontraste un Error?](#found-a-bug)
  • ¿Puedo Ayudar?](#can-i-help)
  • ¿Qué Pasa con el Nombre?](#whats-up-with-the-name)

¿Qué es BBQSQL?

La inyección SQL ciega puede ser un dolor de cabeza para explotar. Cuando las herramientas disponibles funcionan, lo hacen bien, pero cuando no, tienes que escribir algo personalizado. Esto consume tiempo y es tedioso. BBQSQL puede ayudarte a abordar esos problemas.

BBQSQL es un framework de inyección SQL ciega escrito en Python. Es extremadamente útil cuando se atacan vulnerabilidades de inyección SQL complicadas. BBQSQL también es una herramienta semiautomática, que permite bastante personalización para esos hallazgos de inyección SQL difíciles de explotar. La herramienta está diseñada para ser agnóstica a la base de datos y es extremadamente versátil. También cuenta con una interfaz de usuario intuitiva para facilitar la configuración de los ataques. Además, se implementa Python gevent, lo que hace a BBQSQL extremadamente rápido.

Resumen del Readme

Intentamos escribir la herramienta de manera que sea muy autoexplicativa al configurar un ataque en la interfaz de usuario. Sin embargo, para ser exhaustivos, hemos incluido un Readme detallado que debería brindarte información adicional sobre los detalles de cada opción de configuración. Una cosa a tener en cuenta es que cada opción de configuración en la interfaz de usuario tiene una descripción asociada, por lo que si decides usar la herramienta sin leer esta página, deberías poder abrirte camino a través de un ataque.

Uso de Alto Nivel

Al igual que otras herramientas de inyección SQL, debes proporcionar cierta información de la solicitud.

Debes proporcionar la información habitual:

  • URL
  • Método HTTP
  • Encabezados
  • Cookies
  • Métodos de codificación
  • Comportamiento de redirección
  • Archivos
  • Autenticación HTTP
  • Proxies

Luego, especifica dónde se realizará la inyección y qué sintaxis estamos inyectando. Continúa leyendo para más detalles.

Instalación

Esto debería ser sencillo, pero como siempre, intenta ejecutar:

sudo pip install bbqsql

Si eso no funciona para ti, puedes instalar desde el código fuente. La herramienta requiere gevent, requests.

Opciones de BBQSQL

En el menú verás un lugar para las opciones de BBQSQL. Aquí especificas las siguientes opciones:

consulta

Esto se describe con mayor detalle a continuación en resumen de sintaxis de consulta.

archivo_de_salida_csv

El nombre de un archivo para exportar los resultados. Déjalo en blanco si no deseas salida a un archivo.

técnica

BBQSQL utiliza dos técnicas al realizar un ataque de inyección SQL ciega. La primera y predeterminada es búsqueda_binaria. Consulta Wikipedia para más información.

La segunda técnica que puedes usar es búsqueda_por_frecuencia. La búsqueda por frecuencia se basa en un análisis del idioma inglés para determinar la frecuencia con la que ocurre una letra. Este método de búsqueda es muy rápido contra datos no entrópicos, pero puede ser lento contra datos que no son en inglés o están ofuscados.

Puedes especificar binary_search o frequency_search como valor para este parámetro.

atributo_de_comparación

Esto especifica el tipo de inyección SQL que has descubierto. Aquí puedes establecer qué atributo de la respuesta HTTP debe mirar bbqsql para determinar verdadero/falso.

Puedes especificar: status_code, url, time, size, text, content, encoding, cookies, headers o history

Si has identificado una inyección SQL que resulta en un código de estado del servidor diferente, establece 'status_code' aquí. Si la cookie es diferente, establece 'cookie'. Si el tamaño de la respuesta es diferente, establece 'size'. Entiendes la idea.

concurrencia

La concurrencia se basa en la biblioteca gevent de Python. Funcionalmente, parece actuar como hilos, pero los detalles de cómo funciona se pueden ver en nuestra charla de DefCon [insertar enlace aquí]. Esta configuración controla la cantidad de concurrencia para ejecutar el ataque. Es útil para limitar las solicitudes y acelerar los tiempos de ataque. Para servidores web de alto rendimiento como nginx, hemos podido establecer la concurrencia en 75. Por defecto, está establecido en '30'.

Resumen de Sintaxis de Consulta

Si te encuentras con una vulnerabilidad de inyección SQL que tiene algunas peculiaridades extrañas (como que ciertos caracteres no se pueden incluir o que funciones como ASCII/CHAR no funcionan), probablemente te hayas visto escribiendo algún tipo de script con tu sintaxis de inyección personalizada. BBQSQL elimina la parte de scripting y proporciona una manera de pegar tu sintaxis de consulta personalizada y explotar con facilidad.

La entrada de consulta es donde construirás tu consulta para extraer información de la base de datos. Se asume que ya has identificado una inyección SQL en un parámetro vulnerable y has probado una consulta que es exitosa.

A continuación se muestra un ejemplo de consulta que puedes usar para construir tu consulta.

En este ejemplo, el atacante intenta seleccionar la versión de la base de datos:

vulnerable_parameter'; if(ASCII(SUBSTRING((SELECT @@version LIMIT 1 OFFSET ${row_index}) , ${char_index} ,1))) ${comparator:>}ASCII(${char_val}) WAITFOR DELAY '0\:0\:0${sleep}'; --

La sintaxis de la consulta se basa en marcadores de posición que le indican a BBQSQL cómo ejecutar el ataque.

Debes proporcionar los siguientes marcadores de posición de información para que el ataque funcione. Una vez que los coloques en tu consulta, bbqSQL hará el resto:

${row_index}: Esto le dice a bbqSQL que itere filas aquí. Dado que estamos usando LIMIT, podemos ver n número de filas dependiendo del valor de ${row_index}.

${char_index}: Esto le dice a bbqSQL qué carácter de la subconsulta consultar.

${char_val}: Esto le dice a bbqSQL dónde comparar los resultados de la subconsulta para validar el resultado.

${comparator}: Así es como le dices a BBQSQL que compare las respuestas para determinar si el resultado es verdadero o falso. Por defecto, se usa el símbolo >.

${sleep}: Esto es opcional pero le dice a bbqSQL dónde insertar el número de segundos para dormir al realizar una inyección SQL basada en tiempo.

No todos estos marcadores de posición son obligatorios. Por ejemplo, si has descubierto una inyección SQL basada en booleano semi-ciego, puedes omitir el parámetro ${sleep}.

Parámetros HTTP

BBQSQL tiene muchos parámetros HTTP que puedes configurar al preparar tu ataque. Como mínimo, debes proporcionar la URL, dónde quieres que se ejecute la consulta de inyección y el método. Las siguientes opciones se pueden configurar:

  • archivos
  • encabezados
  • cookies
  • url
  • permitir_redirecciones
  • proxies
  • datos
  • método
  • autenticación

Especificas dónde quieres que se inserte la consulta de inyección usando la plantilla ${injection}. Sin la plantilla de inyección, la herramienta no sabrá dónde insertar la consulta.

archivos

Proporciona archivos para enviar con la solicitud. Establece el valor a la ruta y BBQSQL se encargará de abrir/incluir el archivo.

encabezados

Encabezados HTTP para enviar con las solicitudes. Puede ser una cadena o un diccionario. Por ejemplo:

{"User-Agent":"bbqsql"} o "User-Agent: bbqsql"

cookies

Descargar herramienta