sql >> Databáze >  >> RDS >> Mysql

Stránka byla napadena pomocí SQL Injection

Vypadá to na útok přetečení . UNION -ed s vaším stávajícím dotazem. nahrazením všech vašich %20 s (mezera), protože jeho zakódovaná adresa URL poskytuje:

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

rozebrat to:

  1. =-999.9 právě ukončuje váš aktuální dotaz
  2. 0x31303235343830303536 je NULL - pouze odpovídají počtu sloupců ve vašem stávajícím dotazu. Pokud jste měli SELECT * FROM users a users měl 4 sloupce, UNION musí mít také 4 sloupce. Výsledkem bylo, že k naplnění těchto sloupců použili pouze hodnoty NULL.
  3. skutečný zmatek je v CONCAT() . Kombinují 126, 39, název databáze jako hexadecimální hodnotu, 39 a 126
  4. -- je komentář mysql – ignoruje zbytek vašeho dotazu po

Soudě podle tohoto útoku mám podezření, že nezabalujete vstup do mysql_real_escape_string() , což umožnilo napadeným vyskočit z vašeho dotazu a provést vlastní.

Viz owasp.org pro více informací.



  1. Uložit GUID v MySQL z C#

  2. mysql pořadí podle, nejprve null a poté DESC

  3. MySQL GROUP Podle počtu

  4. Ladění SQL