Mi az SQL befecskendezés?

Az SQL befecskendezés egy olyan kódinjekciós technika, amelyet az adatok vezérelt alkalmazások támadására használnak, rosszindulatú SQL utasítások beillesztésével a végrehajtási mezőbe. Az adatbázis minden szervezet létfontosságú része. Ezt a szervezet magas szintű biztonsága kezeli. Először tanuljuk meg, mi az SQL.

Mi az SQL?

Az SQL egy strukturált lekérdezési nyelv. Az adatbázis interakciójára és manipulálására szolgál.

Milyen SQL pontosan?

  • Hozzon létre egy új adatbázist.
  • Rekordok beszúrása, frissítése, törlése.
  • Hozzon létre új lekérdezéseket.
  • Tárolt eljárások.
  • Hozzon létre nézeteket.
  • Végezzen lekérdezéseket.
  • Állítsa be az engedélyeket.

Az SQL injekció az egyik legfontosabb biztonsági fenyegetés. Ez a kiberbűnözés alá tartozik.

Az SQL-ben van egy koncepció, az SQL befecskendezés. Ezt a technikát használják a kód beadására. SQLi (az SQL befecskendezés más néven egy hackelés típusa, azaz befecskendezés támadása.) Internetes hackelés technikának is nevezik.

Ez a befecskendezés egy rosszindulatú kódot injektál az adatbázisba azáltal, hogy weboldalon adja meg az adatokat. Ezeknek a bemeneteknek vannak bizonyos feltételei, amelyek mindig igazak. Ilyen körülmények között a hackerek könnyen áthaladnak a biztonsági teszteken. Könnyen beolvashatnak adatokat az SQL adatbázisból. Az SQL Injection segítségével felvehetnek, módosíthatnak és törölhetnek rekordokat az adatbázisban. Az adatbázis bárki a MySQL, SQL Server, Oracle, SQL Server stb. Körében illegális.

Ha egy webhely vagy egy alkalmazás rosszul van megtervezve, akkor ezek a támadások károsíthatják az egész rendszert. Ezen a ponton jelenik meg a kiberbiztonság.

Az SQL befecskendezés viselkedése

Ezek a támadások általában dinamikus SQL utasításokon működnek. Az SQL-befecskendezés adatbázismotor függvénye. Ez motoronként eltérő. Amikor kérjük, hogy adja meg a felhasználónak a weboldalon a felhasználónevet és a jelszót. Nem szándékosan adunk hozzáférést a felhasználónak, hogy ezt a bemenetet közvetlenül az adatbázisba adja meg.

Az SQL befecskendezés típusai

  1. Sávon belüli SQL-injektálás (klasszikus SQL-injektálás): Ebben a technikában a hacker ugyanúgy használja az adatbázis feltörését és az adatok beolvasását, azaz az adatbázisból származó eredményeket.
  1. Hibaalapú SQL-injektálás: Ebben a típusban a hacker megkapja az adatbázis hibamintáját és elérheti azt. Azt mondhatjuk, hogy ez az egyik sávon belüli SQL-injektálás.
  1. Uniós alapú SQL-injektálás: Ez a technika a sávon belüli SQL-injektálás részét képezi. Ebben a technikában a felhasználó egyesíti a lekérdezést és az eredményt visszakapja HTTP-válaszként.
  1. Inferenciális SQL-injektálás (vak vak SQL-injektálás): Ahogy a neve is sugallja, itt a hackerek nem használják a sávot az adatokhoz az adatbázisból. A hackerek képesek megváltoztatni az adatbázis szerkezetét az adatbázis mintáinak megfigyelésével. Ez egy nagyon veszélyes típusú SQL-injektálás. A támadás végrehajtása hosszabb időt vesz igénybe. A Hacker nem látja ennek a technikanak a támadását.
  1. Boolean-alapú (tartalmalapú) vak SQL-injektálás: Ez az Inferenciális SQL-injektálás része. Ebben a technikában a hackerek az adatbázishoz kényszerítik az eredményt valódi vagy hamis állapot alapján. Ettől a feltételtől függően a HTTP válasz eredménye megváltozik. Ez a fajta támadás arra következtethet, hogy ha a hasznos teher igaz vagy hamisnak bizonyult, akkor is, ha az adatbázisból egyetlen adat sem tér vissza. Ezek a különösen lassú támadások.
  1. Idő alapú vak vak SQL injekció: Ez a technika az Inferenciális SQL injekció részét képezi. Ezt a technikát a hackerek használják a hasznos teher lerakására. Ebben a technikában a hackerek időt adnak az adatbázisnak a lekérdezés végrehajtására. A hackerek időközben képet kapnak az eredményről, igaz vagy hamis. Ez a támadás folyamata szintén lassú.
  1. Sávon kívüli SQL injektálás: Ez egy szolgáltatás alapú támadás. Ez nem túl gyakori. Ezt a támadást a hackerek akkor használják, amikor a hackereknek különféle csatornákat kell használniuk a támadáshoz, másoknak pedig az eredmény eléréséhez. A sávon kívüli SQL-injektálási technikák attól függnek, hogy az adatbázis-kiszolgáló DNS vagy HTTP kéréseket küld-e az adatok továbbítására a hacker számára.

Hogyan működik?

Elsősorban kétféle módon lehet a támadó az adatok megszerzésére összpontosítani:

  1. Közvetlen támadás: Közvetlenül a különböző értékek kombinációjával. Itt a hacker a megerősített bemenetet adja, amely pontos eredményt ad.
  2. Kutatás: Az adatbázis elemzése különböző bemenetek megadásával. A támadó itt megfigyeli az adatbázis-kiszolgáló válaszát, és eldönti, hogy melyik támadást kell végrehajtani.

Mint az SQL-befecskendező hackerek már tárgyalták, a bemeneti elembe minden olyan feltételt megadnak, amely mindig igaz. Kérjük, ellenőrizze a következő példát.

VOLT:

Tegyük fel, hogy az alábbi lekérdezéssel szerezzük be az alkalmazottak adatait az adatbázisból:

500 VAGY = 1

Válasszon * az alkalmazottak közül, ahol Userid = '500'

Felhasználói azonosító :

Ha nincs korlátozva a felhasználó bemenete. Ezután a hackerek ezt a mezőt használhatják az adatbázishoz való egyszerű hozzáféréshez.

És a lekérdezés az alábbiak szerint néz ki

Válassza ki a * alkalmazottat azok közül az alkalmazottak közül, ahol User-id = 500 VAGY 1 = 1;

Ez a lekérdezés visszaadja az adatokat az adatbázisból, mert 1 = 1 mindig igaz lesz. Ilyen módon a feltétel valóra válik. Ez sebezhetőnek tűnik. Ez nagyon veszélyes a szervezetre. Gondolj például a bankszektorra. Ahol a felhasználók nettó banki adataikat jelszavakkal, egyenleginformációkkal stb. Rendelkeznek

Ez a technika a hackerek számára nagyon egyszerű információhoz jutni. Az, hogy egyszerűen megad valamilyen adatot az adatbázishoz.

A hackerek az OR egyszerű beszúrásával és = az adatbázisba történő beillesztésével kapnak adatokat.

Felhasználónév:

”Vagy„ ”=”

Jelszó:

”Vagy„ ”=”

A kiszolgálón a lekérdezés helyesen kerül végrehajtásra, hiba nem jelentkezik. Ezenkívül az 'OR' 1 '=' 1 használatával is adatokat szerezhet az adatbázis-kiszolgálóról.

Felmerül a kérdés, hogyan tudnánk fenntartani adatbázisunk biztonságát?

És a válasz az SQL paraméterek segítségével történik.

Ehhez adjon további paramétereket a lekérdezéshez, amikor az végrehajtódik. Ezeket a támadásokat néhány alábbi technika segítségével könnyen el lehet kerülni.

Tárolt eljárások, elkészített utasítások, rendszeres kifejezések, adatbázis-kapcsolat felhasználói hozzáférési jogok, hibaüzenetek stb . A megelőzés technikái .

Még egy dolog, amelyre gondolnunk kell, hogy az alkalmazásban különböző célokra különféle adatbázisok legyenek.

Még egy dolog a tesztelés. Az adatbázis tesztelése a különböző feltételek mellett is a legjobb módszer.

Következtetés

Az adatbázis létrehozása kulcsfontosságú. Annak a kockázata, hogy információt kap a hackerek kezéből, nem jó egyetlen alkalmazáshoz sem. Tehát az adatbázis létrehozása során néhány egyszerű lépést kell követnünk e veszteség elkerülése érdekében, ehhez egy megfelelő kifejezés: „A megelőzés jobb, mint a gyógyítás”.

Ajánlott cikkek

Ez egy útmutató az Mi az SQL befecskendezés útmutatójához. Itt beszélünk a viselkedésről, annak működéséről és az SQL befecskendezés típusairól. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. Mi az SQL Server?
  2. Mi az SQL | A lekérdezés nyelve magyarázva
  3. Mi az SQL Developer?
  4. SQL parancsok frissítése
  5. Rendszeres kifejezések a Java-ban

Kategória: