Čo je to SQL Injection?

SQL Injection je technika vstrekovania kódu, ktorá sa používa na útok na aplikácie riadené údajmi vložením škodlivých príkazov SQL do poľa vykonávania. Databáza je dôležitou súčasťou každej organizácie. Zabezpečuje to vysoká úroveň bezpečnosti v organizácii. Poďme sa najprv dozvedieť, čo je SQL.

Čo je to SQL?

SQL je štruktúrovaný dopytovací jazyk. Používa sa na interakciu a manipuláciu s databázou.

Čo presne robí SQL?

  • Vytvorte novú databázu.
  • Vloženie, aktualizácia, vymazanie záznamov.
  • Vytvorte nové dotazy.
  • Uložené postupy.
  • Vytvorte zobrazenia.
  • Vykonávanie dopytov.
  • Nastavte povolenia.

Injekcia SQL je jednou z najvyšších bezpečnostných hrozieb. Je to počítačová trestná činnosť.

V SQL máme koncept s názvom SQL Injection. Táto technika sa používa na vloženie kódu. SQLi (SQL injection je známa aj ako druh hackerstva, tj injekčný útok.) Je tiež známa ako technika hackovania webu.

Táto injekcia vstrekuje škodlivý kód do databázy zadaním vstupu na webovú stránku. Tieto vstupy majú určité podmienky, ktoré sú vždy pravdivé. Za týchto podmienok hackeri ľahko prechádzajú bezpečnostnými testami. Môžu ľahko získať údaje z databázy SQL. Pomocou SQL Injection môžu pridávať, upravovať a mazať záznamy v databáze. Táto databáza môže byť ktokoľvek medzi MySQL, SQL Server, Oracle, SQL Server, atď., Je nezákonná.

Ak je webová stránka alebo aplikácia zle navrhnutá, tieto útoky môžu poškodiť celý systém. V tomto okamihu sa objaví kybernetická bezpečnosť.

Správanie SQL Injection

Tieto útoky vo všeobecnosti fungujú na dynamických príkazoch SQL. Vstrekovanie SQL závisí od databázového nástroja. To sa líši od motora k motoru. Keď požiadame používateľa o zadanie údajov na webovej stránke, napríklad používateľské meno a heslo. Neúmyselne dávame používateľovi prístup, aby mohol poskytnúť tento vstup priamo do databázy.

Typy vstrekovania SQL

  1. In-band SQL injection (Classic SQL injection): Pri tejto technike hacker používa rovnaký spôsob hacknutia databázy a získania údajov, tj výsledku z databázy.
  1. Injekcia SQL založená na chybe: V tomto type hacker získa vzor chyby databázy a prístup k nemu. Dá sa povedať, že toto je jeden typ in-band SQL injekcie.
  1. Vstrekovanie SQL založené na únii: Táto technika je tiež súčasťou vstrekovania SQL v rámci skupiny. V tejto technike užívateľ kombinuje dotaz a získa výsledok späť ako časť odpovede HTTP.
  1. Inferenčné SQL vstrekovanie (Blind SQL injection): Ako už názov napovedá, hacker tu nepoužíva pásmo na získavanie údajov z databázy. Hacker má schopnosť zmeniť štruktúru databázy pozorovaním vzorov databázy. Toto je veľmi nebezpečný typ SQL injekcie. Vykonanie tohto útoku trvá dlhšie. Hacker nedokáže vidieť výsledok útoku touto technikou.
  1. Booleovské (založené na obsahu) Blind SQL injection: Toto je súčasť Inferential SQL injection. V tejto technike hacker prinúti databázu načítať výsledok na základe pravdivých alebo nesprávnych podmienok. V závislosti od tejto podmienky sa výsledok odpovede HTTP zmení. Tento druh útoku sa dá odvodiť, ak sa použité užitočné zaťaženie vrátilo pravdivé alebo nepravdivé, aj keď sa nevrátili žiadne údaje z databázy. Jedná sa najmä o pomalé útoky.
  1. Časovo založená slepá injekcia SQL: Táto technika je tiež súčasťou inferenciálnej injekcie SQL. Túto techniku ​​používajú hackeri na vloženie užitočného zaťaženia. V tejto technike hackeri poskytujú čas do databázy na vykonanie dotazu. Medzitým hacker získa predstavu o výsledku, či je pravdivý alebo nepravdivý. Tento proces útoku má tiež pomalý charakter.
  1. Out-of-band SQL injection: Toto je útok založený na funkciách . To nie je príliš bežné. Tento útok používa hacker, keď hacker potrebuje na útok použiť rôzne kanály a iné dosiahnuť výsledok. Techniky mimo-pásmového vstrekovania SQL závisia od schopnosti databázového servera vykonať požiadavky DNS alebo HTTP na doručenie údajov hackerovi.

Ako to funguje?

Útočník sa zameriava hlavne na získavanie údajov, a to hlavne dvoma spôsobmi:

  1. Direct Attack: Priame použitie kombinácie rôznych hodnôt. Tu hacker vložil potvrdený vstup, ktorý dáva presný výsledok.
  2. Výskum: Analýza databázy poskytnutím rôznych vstupov. Útočník tu sleduje odpovede databázového servera a rozhodne, ktorý útok sa musí vykonať.

Ako sme už diskutovali, hackeri s vkladaním SQL vložili stav do vstupného prvku, čo je vždy pravda. Skontrolujte nasledujúci príklad.

EX:

Predpokladajme, že máme nasledujúci dotaz na získanie údajov o zamestnancoch z databázy:

500 ALEBO = 1

Vyberte * od zamestnancov, kde Userid = '500'

ID používateľa :

Ak nemáme žiadne obmedzenia týkajúce sa vstupu používateľa. Hackeri potom môžu použiť toto pole na ľahký prístup k údajom z databázy.

A dotaz môže vyzerať takto

Vyberte * od zamestnancov, kde User-id = 500 ALEBO 1 = 1;

Tento dotaz vráti údaje z databázy, pretože 1 = 1 sa vždy vráti true. Týmto spôsobom sa podmienka stáva skutočnosťou. Zdá sa to zraniteľné. Pre organizáciu je to veľmi nebezpečné. Napríklad premýšľajte o bankovom sektore. Tam, kde majú používatelia podrobné informácie o bankovom účte, heslá, informácie o zostatku atď.

Táto technika je pre hackerov veľmi ľahká získať informácie. Jednoduchým vložením údajov do databázy.

Hackeri získavajú údaje jednoduchým vložením ALEBO a = vložením do databázy.

Meno používateľa:

“Alebo„ “=“

heslo:

“Alebo„ “=“

Na serveri sa koncový dotaz vykoná správne a nevyskytne sa žiadna chyba. Na získanie údajov z databázového servera môžete tiež použiť 'ALEBO' 1 '=' 1.

Teraz vyvstáva otázka, ako by sme mali udržiavať bezpečnosť našej databázy?

Odpoveď je pomocou parametrov SQL.

Pridaním ďalších parametrov do dotazu, keď sa spustí. Týmto útokom sa dá ľahko zabrániť pomocou niektorých techník uvedených nižšie.

Uložené procedúry, pripravené príkazy, regulárne výrazy, prístupové práva užívateľov na pripojenie k databáze, chybové správy atď. Sú preventívnymi technikami .

Ešte jedna vec, ktorú by sme si mali myslieť, že je tiež rozumné mať v databáze rôzne databázy na rôzne účely.

Ešte jedna vec, na ktorú narazíte, je testovanie. Testovanie databázy na rôzne podmienky je tiež najlepším spôsobom.

záver

Vytvorenie databázy je kľúčovou súčasťou. Riziko získania informácií v rukách hackerov nie je pre žiadnu aplikáciu dobré. Takže pri vytváraní databázy musíme postupovať podľa jednoduchých krokov, aby sme zabránili tejto strate. Veta vhodná pre toto je „Prevencia je lepšia ako liečba“.

Odporúčané články

Toto bola príručka Čo je SQL Injection. Tu diskutujeme o správaní, ako to funguje a o typoch SQL Injection. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Čo je to SQL Server?
  2. Čo je to SQL | Vysvetlenie jazyka dopytu
  3. Čo je SQL Developer?
  4. Aktualizácia príkazov SQL
  5. Regulárne výrazy v Jave

Kategórie: