Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Witryna została zhakowana przez wstrzyknięcie SQL

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:

  1. =-999.9 właśnie kończy twoje bieżące zapytanie
  2. 0x31303235343830303536 jest NULL - po prostu pasują do liczby kolumn w istniejącym zapytaniu. Jeśli masz SELECT * FROM users i users miał 4 kolumny, UNION musi mieć również 4 kolumny. W rezultacie po prostu użyli `wartości NULL do wypełnienia tych kolumn.
  3. Prawdziwe zamieszanie jest w CONCAT() . Łączą 126, 39, nazwę bazy danych jako wartość szesnastkową, 39 i 126
  4. -- 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BŁĄD 1396 (HY000):Operacja CREATE USER nie powiodła się dla „jack”@„localhost”

  2. Konwertuj POINT MySQL na tekst w PHP

  3. Zabezpieczanie zdalnego połączenia mysql

  4. Jak mogę wykonać trzy sprzężenia tabel w zapytaniu UPDATE?

  5. Neo4j - Wybieranie danych za pomocą MATCH za pomocą Cypher