Co je SQL Injection?

SQL Injection je technika vstřikování kódu, která se používá k útoku na aplikace řízené údaji vložením škodlivých příkazů SQL do pole provádění. Databáze je důležitou součástí každé organizace. To je řešeno na vysoké úrovni zabezpečení v organizaci. Nejprve se naučíme, co je SQL.

Co je SQL?

SQL je strukturovaný dotazovací jazyk. Používá se k interakci a manipulaci s databází.

Co přesně SQL dělá?

  • Vytvořte novou databázi.
  • Vložení, aktualizace, mazání záznamů.
  • Vytvářejte nové dotazy.
  • Uložené procedury.
  • Vytvářejte pohledy.
  • Spouštět dotazy.
  • Nastavit oprávnění.

Injekce SQL je jednou z hlavních bezpečnostních hrozeb. Tohle spadá do počítačové kriminality.

V SQL máme koncept s názvem SQL Injection. Tato technika se používá k vložení kódu. SQLi (SQL injection je také známý jako druh hackingu, tj. Injekční útok.) Je také známý jako technika webového hackingu.

Tato injekce vloží škodlivý kód do databáze zadáním vstupu na webové stránce. Tyto vstupy mají určité podmínky, které jsou vždy pravdivé. Za těchto podmínek hackeři snadno projdou bezpečnostními testy. Mohou snadno získat data z databáze SQL. Pomocí SQL Injection mohou přidávat, upravovat a mazat záznamy v databázi. Tato databáze může být kdokoli mezi MySQL, SQL Server, Oracle, SQL Server atd., Je nezákonná.

Pokud je web nebo aplikace špatně navržena, mohou tyto útoky poškodit celý systém. V tomto okamžiku přichází do obrazu kybernetická bezpečnost.

Chování SQL Injection

Tyto útoky obvykle pracují na dynamických příkazech SQL. Injekce SQL závisí na databázovém stroji. To se liší od motoru k motoru. Když požádáme uživatele o zadání na webové stránce jako uživatelské jméno a heslo. Neúmyslně dáváme uživateli přístup k zadání tohoto vstupu přímo do databáze.

Typy SQL Injection

  1. In-band SQL injection (Classic SQL injection): V této technice hacker používá stejný způsob, jak hackovat databázi a získávat data, tj. Výsledek z databáze.
  1. Chybová injekce SQL: V tomto typu hacker získá vzor chyby v databázi a přistupuje k ní. Můžeme říci, že se jedná o jeden typ in-band SQL injekce.
  1. Unie injekce SQL: Tato technika je také součástí in-band SQL injection. V této technice uživatel kombinuje dotaz a získává výsledek zpět jako část odpovědi HTTP.
  1. Inferenciální injekce SQL (slepá injekce SQL): Jak název napovídá, zde hacker nepoužívá pásmo k získání dat z databáze. Hacker má schopnost změnit strukturu databáze pozorováním vzorců databáze. Toto je velmi nebezpečný typ SQL injekce. Tento útok trvá déle. Hacker není schopen vidět výstup útoku touto technikou.
  1. Booleovská (obsahová) slepá injekce SQL: Toto je součást Inferential SQL injection. V této technice hacker nutí databázi k načtení výsledku na základě pravdivých nebo nesprávných podmínek. V závislosti na této podmínce se výsledek odpovědi HTTP změní. Tento druh útoku lze odvodit, pokud se použité užitečné zatížení vrátilo pravdivé nebo nepravdivé, i když se žádná data z databáze nevrátila zpět. Jedná se zejména o pomalé útoky.
  1. Time-based Blind SQL injection: Tato technika je také součástí Inferential SQL injection. Tuto techniku ​​používají hackeři k zavedení užitečného zatížení. V této technice hackeři dávají čas do databáze k provedení dotazu. Mezitím hacker získá představu o výsledku, ať už je pravdivý nebo nepravdivý. Tento proces útoku má také pomalý charakter.
  1. Out-of-band SQL injection: Toto je útok založený na vlastnostech. To není příliš běžné. Tento útok používá hacker, když hacker potřebuje k útoku použít různé kanály a ostatní získat výsledek. Techniky vkládání SQL mimo pásmo jsou závislé na schopnosti databázového serveru provádět dotazy DNS nebo HTTP pro doručování dat hackerovi.

Jak to funguje?

Útočník se zaměřuje především na získávání dat, a to hlavně dvěma způsoby:

  1. Direct Attack: Přímé použití kombinace různých hodnot. Zde hacker vložil potvrzený vstup, který dává přesný výsledek.
  2. Výzkum: Analýza databáze poskytnutím různých vstupů. Útočník zde sleduje odpovědi databázového serveru a rozhodne, který útok musí být proveden.

Jak jsme již hovořili o hackerech SQL, hackeři vložili podmínku do vstupního prvku, což je vždy pravda. Zkontrolujte prosím následující příklad.

EX:

Předpokládejme, že máme níže uvedený dotaz, abychom získali údaje o zaměstnancích z databáze:

500 NEBO = 1

Vyberte * od zaměstnanců, kde Userid = '500'

Uživatelské ID :

Pokud na vstup uživatele nemáme žádná omezení. Hackeři pak mohou toto pole použít pro snadný přístup k datům z databáze.

A dotaz může vypadat takto

Vyberte * ze zaměstnanců, kde User-id = 500 OR 1 = 1;

Tento dotaz vrátí data z databáze, protože 1 = 1 se vždy vrátí true. Tímto způsobem se podmínka stane skutečností. Zdá se to zranitelné. To je pro organizaci velmi nebezpečné. Například přemýšlejte o bankovním sektoru. Tam, kde uživatelé mají své čisté bankovní údaje, hesla, informace o zůstatku atd.

Tato technika je pro hackera velmi snadná, pokud jde o získávání informací. Jednoduše zadáním vstupu do databáze.

Hackeři získávají data jednoduše vložením NEBO = vložením do databáze.

Uživatelské jméno:

”Nebo“ ”=”

Heslo:

”Nebo“ ”=”

Na serveru se koncový dotaz provede správně, nedojde k žádné chybě. K získání dat z databázového serveru můžete také použít 'OR' 1 '=' 1.

Nyní vyvstává otázka, jak bychom měli udržovat bezpečnost naší databáze?

Odpověď je pomocí parametrů SQL.

Přidáním dalších parametrů do dotazu, když se spustí. Těmto útokům lze snadno předcházet některými níže uvedenými technikami.

Uložené procedury, připravené příkazy, regulární výrazy, přístupová práva uživatelů k připojení k databázi, chybové zprávy atd. Jsou technikami prevence .

Ještě jedna věc, kterou bychom si měli myslet, že je také rozumné mít v databázi různé databáze pro různé účely.

Další věc, na kterou narazíte, je testování. Testování databáze na různé podmínky je také nejlepším způsobem.

Závěr

Vytvoření databáze je zásadní součástí. Riziko získání informací v ruce hackerů není pro žádnou aplikaci dobré. Takže při vytváření databáze musíme postupovat podle několika jednoduchých kroků, abychom této ztrátě zabránili, věta vhodná pro toto je „Prevence je lepší než léčba“.

Doporučené články

Toto byl průvodce Co je SQL Injection. Zde diskutujeme chování, jak to funguje a typy SQL Injection. Další informace naleznete také v dalších navrhovaných článcích -

  1. Co je SQL Server?
  2. Co je SQL | Vysvětlení jazyka dotazu
  3. Co je SQL Developer?
  4. Aktualizace příkazů SQL
  5. Regulární výrazy v Javě

Kategorie: