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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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ú.
- 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:
- 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.
- 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:
|
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 -
- Mi az SQL Server?
- Mi az SQL | A lekérdezés nyelve magyarázva
- Mi az SQL Developer?
- SQL parancsok frissítése
- Rendszeres kifejezések a Java-ban