Mysql
 sql >> база данни >  >> RDS >> Mysql

Сайтът е хакнат чрез SQL инжекция

Изглежда като атака с препълване . Те UNION -ed с вашата съществуваща заявка. подмяна на всичките ви %20 с (интервал), тъй като кодираният от него URL адрес дава:

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

разбийте го:

  1. =-999.9 току-що приключва текущата ви заявка
  2. 0x31303235343830303536 е NULL - те просто съвпадат с броя на колоните в съществуващата ви заявка. Ако сте имали SELECT * FROM users и users имаше 4 колони, UNION трябва също да има 4 колони. В резултат на това те просто използваха `NULL стойности, за да попълнят тези колони.
  3. истинското объркване е в CONCAT() . Те комбинират 126, 39, име на база данни като шестнадесетична стойност, 39 и 126
  4. -- е коментар на mysql - игнорира останалата част от вашата заявка след

Съдейки по тази атака, подозирам, че не обвивате входа в mysql_real_escape_string() , което позволява на атакуваните да излязат от вашата заявка и да изпълнят своята собствена.

Вижте owasp.org за повече информация.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да преброите всички редове, когато използвате SELECT с LIMIT в MySQL заявка?

  2. Преобразувайте тази заявка в красноречива

  3. mysql грешка:ГРЕШКА 1018 (HY000):Не мога да прочета директорията на '.' (грешка:13)

  4. Как да изградите Rest API с Spring Boot, използвайки MySQL и JPA

  5. Условия за състезание на MySQL