SQL Injection

Autor: Peter Berry
Dátum Stvorenia: 13 August 2021
Dátum Aktualizácie: 22 V Júni 2024
Anonim
SQL Injection For Beginners - Learn From A Pro Hacker Now
Video: SQL Injection For Beginners - Learn From A Pro Hacker Now

Obsah

Definícia - Čo znamená SQL Injection?

Injekcia SQL je počítačový útok, pri ktorom je škodlivý kód zabudovaný do zle navrhnutej aplikácie a potom odovzdaný do backendovej databázy. Škodlivé údaje potom produkujú výsledky dotazu na databázu alebo akcie, ktoré by sa nikdy nemali vykonať.


Úvod do programu Microsoft Azure a Microsoft Cloud V tejto príručke sa dozviete, o čom všetko je cloud computing a ako vám môže Microsoft Azure pomôcť migrovať a podnikať z cloudu.

Techopedia vysvetľuje SQL Injection

Umožňuje prejsť príkladom útoku na injekciu SQL:

Aplikácia, ktorá riadi operácie banky, obsahuje ponuky, ktoré sa môžu použiť na vyhľadávanie podrobností zákazníka pomocou dátových bodov, ako je napríklad číslo sociálneho zabezpečenia zákazníka. Na pozadí aplikácia zavolá dotaz SQL, ktorý sa spustí v databáze odovzdaním zadaných vyhľadávacích hodnôt nasledovne:

VYBERTE klientske meno, telefón, adresu, dátum_prijatia WHERE social_sec_no = 23425

V tomto vzorovom skripte užívateľ zadá hodnotu 23425 do okna ponuky aplikácie a požiada ho, aby zadal číslo sociálneho zabezpečenia. Potom pomocou hodnoty poskytnutej používateľom sa v databáze spustí dotaz SQL.

Používateľ so znalosťou jazyka SQL môže rozumieť aplikácii a namiesto zadania jedinej hodnoty, keď sa žiada o číslo sociálneho zabezpečenia, zadajte reťazec „23425 alebo 1 = 1“, ktorý sa do databázy postúpi nasledovne:

VYBERTE meno klienta, telefón, adresu, dátum_prijatia WHERE social_sec_no = 23425 alebo 1 = 1

Klauzula WHERE je dôležitá, pretože zavádza zraniteľnosť. V databáze je podmienka 1 = 1 vždy pravdivá a pretože bol zadaný dotaz na vrátenie podrobností o čísle sociálneho zabezpečenia klienta (23425) alebo KDE 1 = 1, dotaz vráti všetky riadky v tabuľke, čo nebolo pôvodný zámer.

Vyššie uvedený príklad útoku SQL injekcie je jednoduchý, ale ukazuje, ako zneužitie zraniteľnosti môže prinútiť aplikáciu spustiť dotaz alebo príkaz backendovej databázy.

Útoky s injekciou SQL sa dajú zmierniť zabezpečením správneho návrhu aplikácií, najmä v moduloch, ktoré na spustenie databázových dopytov alebo príkazov vyžadujú vstup používateľa. Vo vyššie uvedenom príklade je možné aplikáciu zmeniť tak, aby akceptovala iba jednu číselnú hodnotu.