Det ligner et overløbsangreb
. De UNION -ed med din eksisterende forespørgsel. erstatter alle dine %20 med (mellemrum), da dets url-kodede giver:
=-999.9 UNION ALL SELECT CONCAT(0x7e,0x27,Hex(cast(database() as char)),0x27,0x7e),0x31303235343830303536,0x31303235343830303536,0x31303235343830303536-
bryde det ned:
- den
=-999.9afslutter bare din aktuelle forespørgsel 0x31303235343830303536erNULL- de matcher bare antallet af kolonner i din eksisterende forespørgsel. Hvis du havdeSELECT * FROM usersogusershavde 4 kolonner,UNIONskal også have 4 kolonner. Som et resultat brugte de bare `NULL-værdier til at udfylde disse kolonner.- den virkelige forvirring er i
CONCAT(). De kombinerer 126, 39, databasenavn som hex-værdi, 39 og 126 --er en mysql-kommentar - den ignorerer resten af din forespørgsel efter
At dømme ud fra dette angreb formoder jeg, at du ikke ombryder input i mysql_real_escape_string() , som gjorde det muligt for angrebet at springe ud af din forespørgsel og udføre deres egen.
Se owasp.org for mere information.