sql >> Databasteknik >  >> RDS >> Mysql

Webbplatsen har hackats via SQL Injection

Det ser ut som en overflow-attack . De UNION -ed med din befintliga fråga. ersätter alla dina %20 med (mellanslag) eftersom dess url-kodade ger:

=-999.9 UNION ALL SELECT CONCAT(0x7e,0x27,Hex(cast(database() as char)),0x27,0x7e),0x31303235343830303536,0x31303235343830303536,0x31303235343830303536-

bryt ner det:

  1. =-999.9 avslutar bara din aktuella fråga
  2. 0x31303235343830303536 är NULL - de matchar bara antalet kolumner i din befintliga fråga. Om du hade SELECT * FROM users och users hade 4 kolumner, UNION måste också ha 4 kolumner. Som ett resultat använde de bara `NULL-värden för att fylla i dessa kolumner.
  3. den verkliga förvirringen ligger i CONCAT() . De kombinerar 126, 39, databasnamn som hexadecimalt värde, 39 och 126
  4. -- är en mysql-kommentar - den ignorerar resten av din fråga efter

Att döma av denna attack misstänker jag att du inte lindar in indata i mysql_real_escape_string() , som gjorde det möjligt för attackerade att hoppa ur din fråga och köra sin egen.

Se owasp.org för mer information.



  1. 2 sätt att ta bort dubbletter av rader i SQLite

  2. Fråga för att hitta tabeller som ändrats under den senaste timmen

  3. Hur låser resesidor rum?

  4. Hur man avpivoterar en tabell i PostgreSQL