Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
bbqsql — Strumento per l'exploit di SQL Injection | Kitploit
Strumenti/GitHubGitHub/ciscocxsecurity/bbqsql
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubciscocxsecurity/bbqsql

bbqsql

Strumento per l'exploit di SQL Injection

Vedi Repository
826196167 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

#BBQSQL# Un tool di sfruttamento per SQL Injection cieca

Indice

  • Cos'è BBQSQL?
  • Panoramica del Readme
  • Utilizzo di alto livello
  • Installazione
  • Opzioni di BBQSQL
  • Panoramica della sintassi delle query
  • Parametri HTTP
  • Esporta configurazione
  • Importa configurazione
  • Hook personalizzati
  • Trovato un bug?
  • Posso aiutare?
  • Che storia c'è dietro il nome?

Cos'è BBQSQL?##

La SQL injection cieca può essere una vera seccatura da sfruttare. Quando gli strumenti disponibili funzionano, funzionano bene, ma quando non funzionano bisogna scrivere qualcosa di personalizzato. Questo è dispendioso in termini di tempo e noioso. BBQSQL può aiutarti ad affrontare questi problemi.

BBQSQL è un framework per SQL injection cieca scritto in Python. È estremamente utile quando si attaccano vulnerabilità di SQL injection complesse. BBQSQL è anche uno strumento semi-automatico, che consente una buona dose di personalizzazione per quei risultati di SQL injection difficili da innescare. Lo strumento è progettato per essere indipendente dal database ed è estremamente versatile. Ha anche un'interfaccia utente intuitiva che rende molto più semplice l'impostazione degli attacchi. Inoltre, viene implementato Python gevent, rendendo BBQSQL estremamente veloce.

Panoramica del Readme

Abbiamo cercato di scrivere lo strumento in modo tale che sia molto autoesplicativo durante l'impostazione di un attacco nell'interfaccia utente. Tuttavia, per completezza, abbiamo incluso un Readme dettagliato che dovrebbe fornirti ulteriori informazioni sui dettagli di ciascuna opzione di configurazione. Una cosa da notare è che ogni opzione di configurazione nell'interfaccia utente ha una descrizione associata, quindi se scegli di avviare lo strumento senza leggere questa pagina, dovresti essere in grado di cavartela in un attacco.

Utilizzo di alto livello

Analogamente ad altri strumenti di SQL injection, fornisci alcune informazioni sulla richiesta.

Devi fornire le informazioni usuali:

  • URL
  • Metodo HTTP
  • Headers
  • Cookies
  • Metodi di codifica
  • Comportamento dei redirect
  • File
  • HTTP Auth
  • Proxy

Poi specifica dove avviene l'iniezione e quale sintassi stiamo iniettando. Continua a leggere per i dettagli.

Installazione

Dovrebbe essere semplice, ma non lo è mai. Prova a eseguire:

sudo pip install bbqsql

Se non funziona, puoi installare dal sorgente. Lo strumento richiede gevent,requests.

Opzioni di BBQSQL

Nel menu vedrai un posto per le opzioni di BBQSQL. Qui specifichi le seguenti opzioni:

query

Questa è descritta in dettaglio più avanti nella panoramica della sintassi delle query.

csv_output_file

Il nome di un file dove salvare i risultati. Lascia vuoto se non vuoi l'output su file.

technique

BBQSQL utilizza due tecniche durante un attacco di SQL injection cieca. La prima e predefinita è binary_search. Vedi Wikipedia per maggiori informazioni.

La seconda tecnica che puoi utilizzare è frequency_search. La ricerca per frequenza si basa su un'analisi della lingua inglese per determinare la frequenza con cui una lettera si verifica. Questo metodo di ricerca è molto veloce su dati non entropici, ma può essere lento su dati non inglesi o offuscati.

Puoi specificare binary_search o frequency_search come valore per questo parametro.

comparison_attr

Specifica il tipo di SQL injection che hai scoperto. Qui puoi impostare quale attributo della risposta HTTP BBQSQL deve esaminare per determinare vero/falso.

Puoi specificare: status_code, url, time, size, text, content, encoding, cookies, headers o history

Se hai identificato una SQL injection che risulta in un codice di stato del server diverso, imposta status_code qui. Se il cookie è diverso, imposta cookie. Se la dimensione della risposta è diversa, imposta size. Hai capito il concetto.

concurrency

La concorrenza si basa sulla libreria gevent in Python. Funzionalmente, sembra agire come threading, ma i dettagli specifici di come funziona possono essere visti nel nostro talk DefCon qui [insert link here]. Questa impostazione controlla la quantità di concorrenza con cui eseguire l'attacco. È utile per limitare le richieste e velocizzare i tempi di attacco. Per server web ad alte prestazioni come nginx, siamo riusciti a impostare la concorrenza a 75. Di default è impostata a '30'.

Panoramica della sintassi delle query

Se ti imbatti in una vulnerabilità di SQL injection con alcune stranezze (come alcuni caratteri non possono essere inclusi o funzioni come ASCII/CHAR non funzionano), probabilmente ti sei ritrovato a scrivere qualche script con la tua sintassi di iniezione personalizzata. BBQSQL elimina la parte di scripting e fornisce un modo per incollare la tua sintassi di query personalizzata e sfruttare con facilità.

L'input della query è dove costruirai la tua query utilizzata per esfiltrare informazioni dal database. Si presuppone che tu abbia già identificato una SQL injection su un parametro vulnerabile e abbia testato una query che ha successo.

Di seguito è riportato un esempio di query che puoi utilizzare per costruire la tua query.

In questo esempio, l'attaccante cerca di selezionare la versione del database:

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 sintassi della query si basa su segnaposto che dicono a BBQSQL come eseguire l'attacco.

Devi fornire i seguenti segnaposto di informazioni affinché l'attacco funzioni. Una volta inseriti nella tua query, bbqSQL farà il resto:

${row_index}: Questo dice a bbqSQL di iterare sulle righe qui. Poiché stiamo usando LIMIT, possiamo visualizzare n numero di righe a seconda del valore di ${row_index}.

${char_index}: Questo dice a bbqSQL quale carattere dalla subselect interrogare.

${char_val}: Questo dice a bbqSQL dove confrontare i risultati dalla subselect per validare il risultato.

${comparator}: Questo è il modo in cui dici a BBQSQL di confrontare le risposte per determinare se il risultato è vero o no. Per impostazione predefinita, viene utilizzato il simbolo >.

${sleep}: Questo è opzionale ma dice a bbqSQL dove inserire il numero di secondi di pausa quando si esegue SQL injection basata sul tempo.

Non tutti questi segnaposto sono obbligatori. Ad esempio, se hai scoperto SQL injection basata su booleani semi-ciechi, puoi omettere il parametro ${sleep}.

Parametri HTTP

BBQSQL ha molti parametri HTTP che puoi configurare quando imposti il tuo attacco. Come minimo, devi fornire l'URL, dove vuoi che venga eseguita la query di iniezione e il metodo. Le seguenti opzioni possono essere impostate:

  • files
  • headers
  • cookies
  • url
  • allow_redirects
  • proxies
  • data
  • method
  • auth

Specifica dove vuoi che venga inserita la query di iniezione utilizzando il template ${injection}. Senza il template di iniezione, lo strumento non saprà dove inserire la query.

files

Fornisci i file da inviare con la richiesta. Imposta il valore sul percorso e BBQSQL si occuperà di aprire/includere il file.

headers

Headers HTTP da inviare con le richieste. Può essere una stringa o un dizionario. Ad esempio:

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

cookies

Un dizionario o una stringa di cookie da inviare con la richiesta. Ad esempio:

{"PHPSESSIONID":"123123"} oppure PHPSESSIONID=123123;JSESSIONID=foobar

url

Specifica un URL a cui inviare le richieste.

allow_redirects

Scarica lo strumento