sql >> Database >  >> RDS >> Mysql

Site is gehackt via SQL-injectie

Het lijkt op een overloopaanval . Ze UNION -ed met uw bestaande vraag. al uw %20 . vervangen met (spatie) omdat de url-gecodeerde opbrengst:

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

breek het op:

  1. de =-999.9 beëindigt net uw huidige zoekopdracht
  2. 0x31303235343830303536 is NULL - ze komen gewoon overeen met het aantal kolommen in uw bestaande zoekopdracht. Als u SELECT * FROM users . had en users had 4 kolommen, de UNION moet ook 4 kolommen hebben. Als gevolg hiervan gebruikten ze gewoon `NULL-waarden om die kolommen te vullen.
  3. de echte verwarring zit in de CONCAT() . Ze combineren 126, 39, databasenaam als hexadecimale waarde, 39 en 126
  4. -- is een mysql-commentaar - het negeert de rest van uw zoekopdracht na

Afgaande op deze aanval vermoed ik dat je de invoer niet in mysql_real_escape_string() plaatst , waardoor aangevallen uw zoekopdracht konden verlaten en hun eigen zoekopdracht konden uitvoeren.

Zie owasp.org voor meer informatie.



  1. Geaggregeerde gegevenstabellen

  2. MySQL #1140 - Mengen van GROEP-kolommen

  3. Real max_execution_time voor PHP op linux

  4. MySQL SELECTEER WAAR datetime overeenkomt met dag (en niet noodzakelijk tijd)