Moin Linuchs,
Heute morgen 5:28 und 5:29 kamen 211 Aufrufe in dieser Form:
/?TID=17540+%2F%2A%2A%2F%27%2F%2A%2A%2FOR%2F%2A%2A%2F1%2F%2A%2A%2FGROUP%2F%2A%2A%2FBY%2F%2A%2A%2FCONCAT%280x6167754e%2C%28SELECT%2F%2A%2A%2FMID%28IFNULL%28USER%28%29%2C%2F%2A%2A%2F0x20%29%2C1%2C55%29%29%2C0x7241306a%2CFLOOR%28RAND%280%29%2A2%29%29%2F%2A%2A%2FHAVING%2F%2A%2A%2FMIN%280%29%23--%2F%2A%2A%2F-
welcher Datentyp wird denn für den Wert von TID
erwartet?
In den SQL-Kommandos werden die Daten mit addslashes behandelt.
Das war, ist und wird niemals keine gute Idee (sein). Verwende
mysqli_real_escape_string
richtig- oder prepared statements
Meldung 08.12.2021 22:21:27
1062: Duplicate entry 'aguNosmer@localhostrA0j1' for key 'group_key'
Bei so einer Fehlermeldung für „Garbage In“ würde ich aber sehr stutzig werden, denn es heißt nicht, dass eine offensichtlich falsche ID übergeben, sondern anderer SQL-Code ausgeführt worden ist. Das ist potenziell gefährlich!
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # welche sprachen sind vorhanden? #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SELECT ueb1.sprache FROM bia_uebersetzungen ueb1 WHERE ueb1.tabelle = 'termine' AND ueb1.tabelle_id = '17540 /**/'/**/OR/**/1/**/GROUP/**/BY/**/CONCAT(0x6167754e,(SELECT/**/MID(IFNULL(USER(),/**/0x20),1,55)),0x7241306a,FLOOR(RAND(0)*2))/**/HAVING/**/MIN(0)#--/**/-'
Ich vereinfache mal:
SELECT ueb1.sprache
FROM bia_uebersetzungen ueb1
WHERE ueb1.tabelle = 'termine'
AND ueb1.tabelle_id = '17540 /**/'OR 1
GROUP BY CONCAT(0x6167754e,(
SELECT MID(IFNULL(USER(),0x20),1,55)),0x7241306a,FLOOR(RAND(0)*2))
HAVING MIN(0)
Ich wette, dass deine Intention vor dem OR
in Zeile 4 endet.
Allein, um die abzuwehren ist der Server ja beschäftigt.
Im Grunde genommen kann der Server schon das Handtuch (zurück-) werfen, wenn da keine gültige „TID“ ankommt – dafür muss kein einziges SQL-Statement ausgeführt werden.
Aber kann das Schaden an den Daten anrichten?
Anscheinend kann da beliebiger SQL-Code eingeschleust werden, also lautet die Antwort Ja.
Viele Grüße
Robert