Wygląda jak atak przepełnienia
. Oni UNION
-ed z istniejącym zapytaniem. zastąpienie wszystkich Twoich %20
ze spacją, ponieważ zakodowany w adresie URL daje:
=-999.9 UNION ALL SELECT CONCAT(0x7e,0x27,Hex(cast(database() as char)),0x27,0x7e),0x31303235343830303536,0x31303235343830303536,0x31303235343830303536-
rozbij to:
=-999.9
właśnie kończy twoje bieżące zapytanie0x31303235343830303536
jestNULL
- po prostu pasują do liczby kolumn w istniejącym zapytaniu. Jeśli maszSELECT * FROM users
iusers
miał 4 kolumny,UNION
musi mieć również 4 kolumny. W rezultacie po prostu użyli `wartości NULL do wypełnienia tych kolumn.- Prawdziwe zamieszanie jest w
CONCAT()
. Łączą 126, 39, nazwę bazy danych jako wartość szesnastkową, 39 i 126 --
jest komentarzem mysql - ignoruje resztę zapytania po
Sądząc po tym ataku, podejrzewam, że nie pakujesz danych wejściowych w mysql_real_escape_string()
, co pozwoliło zaatakowanym wyskoczyć z Twojego zapytania i wykonać własne.
Zobacz owasp.org aby uzyskać więcej informacji.